Sphinx 识别数字的狮身人面像

Sphinx 识别数字的狮身人面像,sphinx,Sphinx,因为我不希望15.50索引为15 50,所以我在我的Sphinx配置文件中对异常文件进行了大量添加,例如 1.50 => 1.50 然而,这很快就失去了控制 我试着用regexp代替 (([0-9]{1,3}))\.([0-9]{2})=>\1.\2 但显然,使用Regexp这样做已经太迟了,因为这个周期已经被忽略了。理想情况下,我可以强制此操作与异常发生在同一阶段,这样我就可以处理异常中的所有排列,而不是一个接一个的排列(对于小数点后3位或更多的偶发事件,例如32.243,它会

因为我不希望15.50索引为15 50,所以我在我的
Sphinx配置
文件中对
异常
文件进行了大量添加,例如

1.50 => 1.50
然而,这很快就失去了控制

我试着用regexp代替

(([0-9]{1,3}))\.([0-9]{2})=>\1.\2
但显然,使用Regexp这样做已经太迟了,因为这个周期已经被忽略了。理想情况下,我可以强制此操作与异常发生在同一阶段,这样我就可以处理异常中的所有排列,而不是一个接一个的排列(对于小数点后3位或更多的偶发事件,例如
32.243
,它会变得非常笨拙)


我可以强制这个regexp_过滤器在
被忽略之前发生吗,就像异常一样,或者我是被迫将
添加到
斯芬克斯
字符集
中吗?

不要认为在替换之前周期被忽略了太多,而是在替换之后它仍然被忽略。
异常正常标记化规则的例外情况(因此匹配的单词不会通过系统的其余部分),这就是为什么对您有效。而正则表达式过滤器只是在正常处理之前“转换”数据,它不会被绕过

一定要看
blend\u chars

…也许将句点作为混合字符会对您有所帮助。

最后我做了我一直避免的事情:在配置中声明我的字符集_表并强制识别句点。额外的好处是我现在可以在查询中使用
语句:)