为json搜索配置Sphinx

为json搜索配置Sphinx,json,search,sphinx,Json,Search,Sphinx,我想知道sphinx实时索引及其配置。我有一个mysql表,其中包含以下列: filter_id int(11) AI PK filter_user_id int(11) filter_name varchar(64) filter_state text 我将json存储在filter_状态。现在,我想搜索json字段,并配置Sphinx实时索引 我的配置文件如下所示: index rt_filters { type = rt path = /var

我想知道sphinx实时索引及其配置。我有一个mysql表,其中包含以下列:

filter_id       int(11) AI PK
filter_user_id  int(11)
filter_name     varchar(64)
filter_state    text
我将json存储在filter_状态。现在,我想搜索json字段,并配置Sphinx实时索引

我的配置文件如下所示:

index rt_filters
{
    type = rt
    path = /var/sphinx/data/rt_filters

    rt_field = state 
    rt_attr_uint = filter_user_id
    rt_attr_json = filter_state

    rt_mem_limit = 256M
}

searchd
{
    listen          = 9312
    listen          = 9306:mysql41
    log             = /var/log/sphinx/searchd.log
    query_log       = /var/log/sphinx/query.log
    read_timeout    = 5
    max_children    = 30
    pid_file        = /var/run/searchd.pid
    seamless_rotate = 1
    preopen_indexes = 1
    unlink_old      = 1
    workers         = threads # for RT to work
    binlog_path     = /var/sphinx/data
}

但我对将状态复制为rt_字段和rt_attr_json有点困惑。据我所知,Sphinx可以在有rt_attr_json的情况下通过json进行搜索。那么,为什么我需要将其复制为rt_字段?或者我应该查询rt_字段而不是属性?

那么rt_attr_json将被索引,数据将作为属性提供。因此,您可以按它们进行排序、排序、分组和筛选


但您需要将任何要“全文”搜索的值复制到字段中。只有字段是全文索引的。ie用于文本“查询”/MATCH

不幸的是,没有rt\u字段\u jsonNo。如果我只想搜索json字段,那么我应该如何建立我的索引呢?我不需要全文搜索,但我不能在sphinx索引配置中保留字段。我应该在插入时将全文字段留空,然后在属性上搜索吗?它是正确的用例吗?