Sphinx搜索引擎:能否为不同字段设置不同的min_prefix_len值?
按字段配置Sphinx的min_prefix_len是否可行?
当然可行!Sphinx完全支持针对单个字段设置不同的min_prefix_len值,不用把所有字段的前缀长度统一成一样的。
具体配置的时候,你只需要在索引的配置块里,针对每个需要单独设置的字段进行单独定义,覆盖全局的配置即可。举个实际的配置例子:
index student_index { source = student_source path = /var/lib/sphinxsearch/data/student_index # 可选:设置全局默认的前缀长度,没单独配置的字段会用这个值 min_prefix_len = 2 # 先声明索引包含的字段 fields = Name, Class # 为Name字段单独设置min_prefix_len为5 field Name { min_prefix_len = 5 } # 为Class字段单独设置min_prefix_len为3 field Class { min_prefix_len = 3 } }
这样配置后,当你对Name字段做前缀搜索时,只有长度≥5的前缀才会被匹配;而Class字段的前缀搜索只需要前缀长度≥3就可以生效,完美满足你的需求。
需要注意的是,这个特性在Sphinx 2.x及以上版本就已经支持了,如果你用的是更早期的版本可能需要升级一下。另外,Manticore Search(Sphinx的分支项目)也完全支持这种字段级的参数配置。
内容的提问来源于stack exchange,提问作者DAVID_ROA
相关产品推荐
相关产品推荐

