从Sphinx索引中删除打开和关闭括号

时间:2018-05-06 21:00:17

标签: sphinx

我有regexp_filter在我的文档e..g

中查找模式

regexp_filter=Bob Smith=>Robert Smith

但是我发现当模式文本在括号内时这不起作用,例如..

he and my boss (Bob Smith) were due to..

我尝试了一些东西来摆脱(

  1. 在停用词
  2. 中添加了(
  3. 添加了不包含parens的自定义字符集
  4. 但是当它们在括号内时,不管模式是否匹配。

    无论如何都能正确地做到这一点吗?

    更新与连字符完全相同。即使我在StopwordsCharset中明确删除它们,或者甚至使用regexp删除它们

    regexp_filter=-=>

    它们被索引并打破任何正则表达式,尤其是字边界。

    所以:

    regepx_filter=\bBob\b=>Robert

    文字失败,如'收件人:Bob-Mark-John`

    `

1 个答案:

答案 0 :(得分:0)

如果你将括号添加到charset_table(意味着它是一个有效的字符,就像'a'),意味着(Bob Smith)成为(Robert Smith)。 “Robert Smith”与“(Robert Smith)”不匹配。只有启用了中缀并进行通配符搜索(例如“*Robert Smith*”),才能进行此匹配。

只有在您确定需要将其作为用于构造单词的有效字符时,才应向chartset_table添加特殊字符。