带下划线标题的Sphinx部分单词搜索。

带下划线标题的Sphinx部分单词搜索。,sphinx,Sphinx,目前正在尝试使用Sphinx搜索药物名称,由于美国医疗名称的结构方式,其在数据库中的所有药物类型都无法改变 例如,如果我搜索medicine\u type Sphinx会很容易找到它,但是如果我只键入药物名称来显示所有类型的药物,它不会找到 我尝试过启用expand_keywords=1,但没有效果 我能做些什么让Sphinx做我需要的吗?那么默认的charset\u表包括下划线作为单词字符 一个简单的解决方案,可能只是将其从字符集表中删除(即明确定义charset\u表,而不在列表中定义。)

目前正在尝试使用Sphinx搜索药物名称,由于美国医疗名称的结构方式,其在数据库中的所有药物类型都无法改变

例如,如果我搜索medicine\u type Sphinx会很容易找到它,但是如果我只键入药物名称来显示所有类型的药物,它不会找到

我尝试过启用expand_keywords=1,但没有效果

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

那么默认的
charset\u表
包括下划线作为单词字符

一个简单的解决方案,可能只是将其从字符集表中删除(即明确定义
charset\u表
,而不在列表中定义

。。。然后下划线将作为单词分隔符(如空格),表示单词匹配

(如果不需要,也可以移除一些俄文字符,并调查其他字母是否需要索引)


也至少要考虑<代码> BLANDY-CHARS


虽然在这种情况下,我不认为这特别有帮助

在阅读文档时,我不确定自己是否理解字符集表的工作原理,是否有一个示例?在文章中添加了一个明确的示例。
# 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
# 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