有一个大型的文本语料库(100 k)和一个ngrams,例如:
query -获取带有标记['united','airlines']的所有文本
我希望只检索具有两个标记(“united”,“airlines”)的完全匹配的文本,但是我还希望任何标记(united -〉airlines,或者“airlines-〉united”)之间的距离将达到K个位置。
我现在疑问是:
query = {
"size": limit,
"query": {
"query_string": {"query": query,
"phrase_slop":2,
"default_operator":"AND"}
}
}
但它似乎不是正确的方法,因为我得到的结果与超过2个位置(令牌)之间。
你知道吗?
1条答案
按热度按时间yv5phkfx1#
我已经找到了我问题的答案:
当在ElasticSearch中使用查询字符串类型查询时,我们可以通过添加~k来使用邻近搜索,其中k是短语中单词的最大编辑距离的数量。
对于主问题中的查询,添加邻近搜索:
有关详细信息,请参阅文档