ElasticSearch匹配单词" new"任何时候它不属于"纽约"

时间:2018-02-23 00:10:57

标签: elasticsearch

我有三个文档,其中包含一个text字段。这是他们的内容:

1) {"text": "I want to match docs with a word New"}
2) {"text": "But I don't want to match docs with a phrase New York"}
3) {"text": "However I still want to match docs with a word New which has a phrase New York"}
4) {"text": "For example let's say there's a New restaraunt in New York and I want this doc to be matched."}

除了第二个之外,我有什么方法可以匹配所有文档吗?理想情况下,我想使用simple query stringsquery string,但任何其他解决方案都可以。我试图修改邻近查询和shignles但失败了。我设法通过使用全文正则表达式匹配实现了这一点,但我还不想走这条路。查询-"new york" new不符合文档3和4.我完全不需要这两个词,关于如何做到这一点的想法就是重要的。一般情况下,我希望能够匹配任何单词A之前没有预先/后跟单词B的单词N

提前致谢!

1 个答案:

答案 0 :(得分:2)

对于这个简单的问题有点破解,但你可以尝试同义词替换New York,newyork =>索引期间的纽约