Sql elasticsearch匹配两个字段
如何在elasticsearch上运行这个简单的SQL查询 从[mytype]中选择*,其中a=-23.4807339和b=-46.60068Sql elasticsearch匹配两个字段,sql,elasticsearch,geolocation,match,Sql,elasticsearch,Geolocation,Match,如何在elasticsearch上运行这个简单的SQL查询 从[mytype]中选择*,其中a=-23.4807339和b=-46.60068 我对它的语法确实有问题,在我的情况下,多匹配查询不起作用,我应该使用哪种查询类型?您可以使用和过滤器来解决这个问题。举个例子,类似于: { "size": 100, "query" : {"filtered" : { "query" : {"match_all" : {}}, "filter" : {"and" : [
我对它的语法确实有问题,在我的情况下,多匹配查询不起作用,我应该使用哪种查询类型?您可以使用
和
过滤器来解决这个问题。举个例子,类似于:
{
"size": 100,
"query" : {"filtered" : {
"query" : {"match_all" : {}},
"filter" : {"and" : [
"term" : {"a": -23.4807339},
"term" : {"b": -46.60068}
]}
}}
}
确保将查询指向正确的索引和类型。请注意,我任意将返回集的大小指定为100—您必须指定一个适合您的用例的值
有更多关于过滤查询的信息,也有更多关于
和过滤器的信息。对于像您这样的查询bool
过滤器比和过滤器更受欢迎。了解这个建议的全部内容,以及为什么被认为更有效
话虽如此,我还是选择这样做:
{
"query": {
"filtered": {
"filter": {
"bool": {
"must": [
{"term": {"a": -23.4807339}},
{"term": {"b": -46.60068}}
]
}
}
}
}
}
谢谢成功了!如果我想让它返回所有的值,有没有办法不使用很多查询就返回呢?@ViníciusMariano如果你要返回大量的文档,最好的办法可能是查看滚动
功能(它与其他数据库技术中的游标有些相似)。这里有更全面的文档:这篇文章似乎过时了,它说“警告:这篇文章包含过时的信息。我们不再建议采纳它的建议”。如果你能更新你的答案,请告诉我