【发布时间】:2018-07-09 03:04:33
【问题描述】:
我想在 Elastisearch 中使用 word boundaries 进行正则表达式查询,但看起来 Lucene regex engine 不支持 \b。我可以使用哪些解决方法?
【问题讨论】:
-
您是否也希望返回
4 text word and wordb字符串(如果您要查找的是word)? -
不,只是
word -
如果您使用分词器,您可以使用 Java 正则表达式。然后支持
\b。见docs。 -
在我看来,您可能会在使用 ES Lucene 正则表达式风格的查询中使用类似
~([A-Za-z0-9_]word|word[A-Za-z0-9_])word~([A-Za-z0-9_]word|word[A-Za-z0-9_])的东西,匹配一个不包含words 且两端带有单词字符的字符串,a词,以及任何文本,但word是词的一部分。 -
三思而后行,试试
(.*[^A-Za-z0-9_])?word([^A-Za-z0-9_].*)?
标签: regex elasticsearch lucene