Sphinx 强制首字母缩略词为大写狮身人面像?

Sphinx 强制首字母缩略词为大写狮身人面像?,sphinx,case-sensitive,Sphinx,Case Sensitive,在“人力资源”中搜索“人力资源”将返回包含人力资源的文档,例如90美元人力资源。我试过wordforms,但没用,我被卡住了。我知道可能会更改字符集,但这将意味着我失去匹配任何其他情况的能力。这一定是Sphinx搜索的一个问题。一般来说,有人有办法解决吗?我认为解决这个问题的唯一方法是使用regexp\u过滤器,它可以进行区分大小写的替换 类似于 regexp_filter = \b([A-Z]{2,})\b => upper_\1 它将替换为不同的单词,但上面的前缀将保留字符集\表中标

在“人力资源”中搜索“人力资源”将返回包含人力资源的文档,例如90美元人力资源。我试过wordforms,但没用,我被卡住了。我知道可能会更改字符集,但这将意味着我失去匹配任何其他情况的能力。这一定是Sphinx搜索的一个问题。一般来说,有人有办法解决吗?

我认为解决这个问题的唯一方法是使用
regexp\u过滤器,它可以进行区分大小写的替换

类似于

regexp_filter = \b([A-Z]{2,})\b => upper_\1

它将替换为不同的单词,但上面的前缀将保留字符集\表中标记的下半部

这上面基本上是说,任何两个字母都可以变成大写?然后我留下了3个和4个字母的首字母缩略词,它们可以清楚地介绍一些问题,因为执行{2,4}肯定会带来比修复更多的问题。我可能不得不扩展我的内部逻辑,并推动一些!转换为特定首字母缩略词。任何2个或更多字母大写的单词,将只匹配大写字母。它实际上并没有把它变成大写,而是把“HR”变成了“upper_HR”。搜索say
upper\u hr
将匹配
hr
,但不是
hr
有趣的想法,这意味着我强制在首字母缩写词上搜索upper\u$acornym。我将您的regexp添加到wordforms中,然后用“HR”和“HR”搜索了各种样本记录。搜索upper_hr不会返回任何结果。是否需要启用任何其他索引设置才能使其正常工作?这是一个很好的解决方案,因为我可以控制输入首字母缩写词的推送方式。
将regexp添加到wordforms中
哈?这毫无意义。正则表达式过滤器与wordforms无关。它们直接进入源代码配置。新手错误抱歉,工作正常。有一个警告;当我将其放入配置中时,NEAR/fails“unexpected'/'NEAR'/10”。如果我对regexp\u进行注释,则会过滤掉相同的注释。