将Elasticsearch kibana查询字符串格式转换为URI搜索格式

时间:2018-01-20 16:20:08

标签: amazon-web-services elasticsearch solr lucene kibana-5

从上周开始,我在AWS上使用Elastic Search Service。我目前的Elasticseach版本是6.X.X和Kibana 6.X.X,现在我对使用Kibana Client运行的查询格式有点灵活。但我的问题是,我无法将查询转换为在浏览器网址/邮递员上运行的URI格式。例如:如何将其转换为URI搜索格式?。

GET my_index/_search
{
  "query": {
    "geo_bounding_box": { 
      "location": {
        "top_left": {
          "lat": 42,
          "lon": -72
        },
        "bottom_right": {
          "lat": 40,
          "lon": -74
        }
      }
    }
  }
}

我在这里看到了关于URI搜索格式的文档,其中包含参数,如 q df 等:{{3}但是无法将上述查询字符串转换为URI搜索格式。实际上我对SOLR查询格式非常灵活,支持 q,fq,sort,start,rows,boost,facet,group 等等。所以,据我所知,Elastic搜索也使用了Lucene索引所以我的基本问题是

1。如何将上述ES查询sting转换为URI搜索格式?

2. 如何轻松将SOLR查询转换为ES格式?

如果您帮我将上述查询字符串转换为 URI搜索格式,那么它可以帮助我将现有的复杂SOLR查询转换为ES查询。

NB:我能够使用?q = 参数转换基本 CRUD 操作,但很难隐藏其他参数像facet,boosting,group等。

编辑:其实我想说这个查询参数会返回相同的文档数。来自solr& es - 这里我只使用 _source 作为ES,因为我们对SOLR使用 fl 。否则一切都是一样的

https://www.elastic.co/guide/en/elasticsearch/reference/6.0/search-uri-request.html AND -booked_date:[2018-02-23T00:00:00Z至2018-02-26T00:00:00Z]和min_stay:[* TO 3] AND占用:[3 TO *] AND -latlon:0.001,0.001

Val 的回答中,我发现 1 我可以轻松地使用相同的查询字符串进行URI搜索。的 2 即可。但是如何轻松地将我的SOLR查询转换为ES格式?

1 个答案:

答案 0 :(得分:2)

请注意,通过将DSL查询放在source query parameter中,始终可以使用与URI搜索完全相同的DSL查询。您还需要添加source_content_type=application/json参数。所以你的查询看起来像这样:

GET my_index/_search?source_content_type=application/json&source={"query":{"geo_bounding_box":{"location":{"top_left":{"lat":42,"lon":-72},"bottom_right":{"lat":40,"lon":-74}}}}}