在ElasticSearch查询中保留术语的顺序
在ElasticSearch中是否有可能形成可以保留术语顺序的查询?
一个简单的例子是使用标准分析器为这些文档建立索引:
- 你知道要搜索
- 你知道搜索
- 知道为您搜寻
我可以查询+you +search
,这将返回所有文档,包括第三个文档。
如果我只想检索按此特定顺序排列有术语的文档怎么办?我可以构成一个查询吗?
考虑到仅通过引用文本即可获得短语:("you know"
检索第一和第二文档)在我看来,应该有一种方法可以保留不相邻的多个术语的顺序。
在上面的简单示例中,我可以使用邻近搜索,但这并不涵盖更复杂的情况。
回答:
您可以使用span_near
查询,它具有一个in_order
参数。
{ "query": {
"span_near": {
"clauses": [
{
"span_term": {
"field": "you"
}
},
{
"span_term": {
"field": "search"
}
}
],
"slop": 2,
"in_order": true
}
}
}
以上是 在ElasticSearch查询中保留术语的顺序 的全部内容, 来源链接: utcz.com/qa/400785.html