php – sphinx api基本设置

其实我的问题似乎很基础.

>我正在使用sphinx版本2.3.1 beta
>我无法设置它来搜索我的数据库.
>我正在使用带有1.57 GB数据的mysql DB,这是在我的服务器localhost上.
>我想用php使用sphinxapi.

就像我想的那样,我必须告诉狮身人面像

>在哪里寻找数据
>如何处理它
>存储索引的位置

好吧,我不知道应该更改哪个文件.

我在sphinx文件夹中找到了一个名为configure的文件,我尝试了这个,然后我更改了sphinx.conf.in但我仍然不能使用sphinx.

如果你帮我配置sphinx基本设置会很棒.

我研究了问题,但没有像这样的基本问题.

提前致谢.

解决方法:

我已经看过几次这个初学者的混乱,所以我想我会给出一些更详细的快速入门.那么,开始使用Sphinx搜索的基本介绍:

通常,sphinx项目文件存储在三个目录下:project / sphinx / etc,project / sphinx / logs和project / sphinx / data.这些可以根据需要进行修改,但我遵循以下惯例.

运行狮身人面像

在系统上安装Sphinx后,您将拥有两个可执行文件:indexer和searchd. indexer是检查配置文件并为您指定的数据编制索引以便快速访问的程序. searchd是您通常希望继续运行的后台进程(或守护进程).将此视为Sphinx搜索引擎的动作.来自sphinxapi的所有查询都将路由到searchd,searchd将对索引数据执行搜索,并按照您指定的顺序返回记录的ID.运行这两个可执行文件的例子(在linux中,虽然在Windows上它应该不会太不同)如下所示:

indexer -c /path/to/project/sphinx/etc/sphinx.conf --all

这会索引配置文件中指定的所有源.有更多选项可用于仅索引指定的源. Detailed listing of options here.

searchd -c /path/to/project/sphinx/etc/sphinx.conf --rotate

这会初始化searchd守护程序并将其分配给后台,它将继续运行直到您将其终止. rotate选项允许您在将来更新索引时保持守护程序运行.您可以使用–stop开关来停止守护程序. Detailed listing of options here.

配置Sphinx

这将我们带到配置文件.配置文件由源和索引配置的集合以及用于配置sphinx本身的searchd部分组成.这里有很多选项要配置,但基本的sphinx.conf(通常是sphinx安装文件夹中的sphinx.conf.dist文件)文件起初有点压倒性.我只是提到了一些开始使用所需的基本配置选项.我假设您使用的是MySQL,但这应该很容易适应任何数据提供者.

searchd {
    /* Define your file paths. */
    log = /path/to/project/sphinx/logs/searchd.log
    query_log = /path/to/project/sphinx/logs/query.log
    pid_file = /path/to/project/sphinx/logs/searchd.pid

    /* Listen on port 9312 (This is the default port) */
    listen = localhost:9312
}

这是基本的searchd配置,指定了写日志的位置以及要锁定的.pid文件.搜索守护程序侦听端口9312,默认情况下,sphinxapi会将其查询转发给它.

source text_search{
    /* Data provider details */
    type = mysql
    sql_host = localhost
    sql_user = sql_user_name
    sql_pass = sql_pass_word
    sql_db = my_db_name     

    /* The query used to index the data. A very basic example... */
    sql_query = SELECT id, text_field, status FROM text_search
    sql_attr_uint = status
}

这是数据的来源.在这里,索引器将运行提供的查询并索引结果. id被作为键,因为它是一个整数字段,没有明确提到它是什么(与状态字段不同).由于text_field是一个文本字段(duh!),因此sphinx会隐式地为全文搜索索引.我们还指定status是一个整数字段,我们稍后可以在执行搜索时过滤结果.

index text_search_index{
    /* The data source that we have defined above. */
    source = text_search

    /* The path to store the index data/cache */
    path = /path/to/project/data/text_search

    /* Use stemming while searching */
    morphology = stem_en
}

这定义了searchd将用于搜索的索引的详细信息.提供数据来源.有许多选项可根据您的需求定制结果.我只提供了一个示例,我们指定searchd必须使用词干算法来匹配查询.可以通过以下方式收集所有可用选项的详细信息:

> Source Options
> Index Options
> Searchd Options

这绝不是详细的,但我希望这会让你开始……

上一篇:在Java中运行连续批处理


下一篇:php – 如何在sphinx中截断RT索引表