【发布时间】:2018-05-06 21:00:17
【问题描述】:
我有一个regexp_filter,它在我的文档中寻找一个模式,例如..g
regexp_filter=Bob Smith=>Robert Smith
但是我发现当模式文本在括号内时这不起作用,例如..
he and my boss (Bob Smith) were due to..
我已经尝试了一些方法来摆脱(
- 在停用词中添加了
( - 添加了一个不包含括号的自定义字符集
但无论模式在括号内时都不匹配。
有没有办法正确地做到这一点?
更新是连字符也会发生完全相同的事情。即使我在 Stopwords 或 Charset 中明确删除它们,甚至制作一个正则表达式来删除它们
regexp_filter=-=>
它们被编入索引并破坏任何正则表达式,尤其是单词边界。
所以:
regepx_filter=\bBob\b=>Robert
在“收件人:Bob-Mark-John”之类的文本中失败
`
【问题讨论】:
-
确保源代码中没有额外的换行符(即换行),例如,如果 Bob 和 Smith 之间有换行符,则正则表达式不会匹配它。 (regexp_filter 应用于原始传入文本,而不是在根据 charset_table 标准化(标记化)之后。
标签: sphinx