为json搜索配置Sphinx
我想知道sphinx实时索引及其配置。我有一个mysql表,其中包含以下列:为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
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索引配置中保留字段。我应该在插入时将全文字段留空,然后在属性上搜索吗?它是正确的用例吗?