用于识别数字的狮身人面像

Sphinx for recognizing Digits

因为我不想将 15.50 索引为 15 50,所以我在我的 Sphinx Configuration 文件中对 Exceptions 文件添加了 # 个,例如

1.50 => 1.50

然而,这很快就会失控。

我试着用正则表达式代替,例如

(([0-9]{1,3}))\.([0-9]{2})=>.

但显然用 Regexp 这样做已经太晚了,因为句点已经被忽略了。理想情况下,我可以强制此操作与异常在同一阶段发生,这样我就可以处理所有排列与异常中的一个一个(对于偶尔有 3 位或更多小数位的 #s,例如 32.243.

我可以强制这个 regexp_filter 在 . 被忽略之前发生吗,或者我是否被迫将 . 添加到 Sphinx character set?

别以为以前忽略了句号,换了之后还是忽略了。 Exceptions 作为正常标记化规则的例外(因此匹配词不会通过系统的其余部分),这就是为您工作的原因。而正则表达式过滤器只是 'transform' 正常处理之前的数据,它不会被绕过。

看看blend_chars http://sphinxsearch.com/docs/current.html#conf-blend-chars ...也许作为混合炭的时期会对您有所帮助。