【发布时间】:2017-11-04 13:33:34
【问题描述】:
查询 1:获取 1 个字段为“user”=“kimchy”的文档。
GET /_search
{
"from" : 0, "size" : 1,
"query" : {
"term" : { "user" : "kimchy" }
}
}
Query2:获取 1 个包含字段“user”=“elasticsearch”的文档。
GET /_search
{
"from" : 0, "size" : 1,
"query" : {
"term" : { "user" : "elasticsearch" }
}
}
Query3:获取 2 个带有字段“user”的文档,其中一个为“kimchy”或“elasticsearch”。
GET /_search
{
"from" : 0, "size" : 2,
"query": {
"constant_score" : {
"filter" : {
"terms" : { "user" : ["kimchy", "elasticsearch"]}
}
}
}
}
Query3 中的问题是多个文档可以将“用户”作为“kimchy”或“elasticsearch”,在第三个查询中,我们可能会同时获得用户“kimchy”的文档或用户“elasticsearch”的两个文档。我们如何修改此术语查询或编写其他查询以获取 1 个具有“user”=“kimchy”的文档和另一个具有 user=“elasticsearch”的文档。
一种解决方案是使用 Query1,2 进行多搜索查询。但是有没有其他方法可以解决这个问题,即获取每个“术语”输入的一个文档?
【问题讨论】:
标签: elasticsearch