Sphinx部分单词搜索带有标题的标题。

时间:2017-05-18 10:21:16

标签: sphinx

目前正在尝试使用Sphinx搜索医学名称,并且由于美国结构医学在数据库中命名其所有medicine_type的方式,并且没有办法改变这种情况。

例如,如果我搜索medicine_type,Sphinx会很容易找到它,但是如果我只输入药物名称以显示所有类型的药物,它就不会。

我尝试过启用expand_keywords = 1无济于事。

我能做些什么让Sphinx做我需要的东西吗?

1 个答案:

答案 0 :(得分:0)

默认 charset_table包含下划线作为单词字符

http://sphinxsearch.com/docs/current.html#conf-charset-table

# default are English and Russian letters
charset_table = 0..9, A..Z->a..z, _, a..z, \
    U+410..U+42F->U+430..U+44F, U+430..U+44F, U+401->U+451, U+451

一个简单的解决方案,可能只是从charset表中删除它(即在列表中没有charset_table明确定义_!)

# custom charset without understore
charset_table = 0..9, A..Z->a..z, a..z, \
    U+410..U+42F->U+430..U+44F, U+430..U+44F, U+401->U+451, U+451

...然后下划线将采用单词 separator (如空格)并且意思是单词匹配。

(也可以删除一些俄罗斯字符,如果不需要它们。并调查其他字母是否要索引)

也可能至少要考虑blend_chars http://sphinxsearch.com/docs/current.html#conf-blend-chars 虽然在这种情况下不认为它特别有帮助。