从上周开始,我在AWS上使用Elastic Search Service。我当前的Elasticseach版本是6.XX和Kibana 6.XX,现在我对在Kibana Client上运行的查询格式有点灵活性。但是我的问题是我无法将查询转换为将在 Browser URL / Postman 上运行的URI格式。例如:如何将其转换为URI搜索格式?
GET my_index/_search { "query": { "geo_bounding_box": { "location": { "top_left": { "lat": 42, "lon": -72 }, "bottom_right": { "lat": 40, "lon": -74 } } } } }
我在这里看到关于URI格式搜索的文档具有不同的 PARAMS 像 q , DF 等:https://www.elastic.co/guide/en/elasticsearch/reference/6.0/search-uri- request.html但不能将上述查询字符串转换为URI搜索格式。实际上,我对支持 q,fq,排序,开始,行,boost,facet,group 等的SOLR查询格式非常灵活。因此,据我所知,elasticsearch也使用了Lucene Indexing,所以我的基本问题是
1. 如何将上述ES查询字符串转换为URI搜索格式?
2. 如何轻松将SOLR查询转换为ES格式?
如果您帮助我将上述查询字符串转换为 URI搜索 格式,那么将我现有的复杂SOLR查询转换为ES查询将大有帮助。
注意: 我可以使用 ?q = 参数转换基本的 CRUD 操作,但是很难隐蔽其他方面,例如facet,boost,group等。
编辑 :实际上我想说这个查询参数返回相同的文档数量。两者均来自solr和es-在这里,我仅将 _source 用于ES,因为我们将 fl 用于SOLR。否则一切都一样
https:// my_host / rental_properties / _search?_source = id,代码:feed_provider_id,feed_provider_id,feed,property_name,pax:入住率,卧室数量,最小住宿,星级,night_rate_min,currency&q = feed:11 AND-预定日期:[2018-02- 23T00:00:00Z TO 2018-02-26T00:00:00Z] AND min_stay:[ TO 3] AND occupancy:[3 TO ] AND -latlon:0.001,0.001
从 Val 的答案中,我知道 1 我可以轻松地将相同的查询字符串用于URI搜索。 2 。但是,如何将SOLR查询轻松转换为ES格式?
请注意,通过将DSL查询放入sourcequery参数中,始终可以使用与URI搜索完全相同的DSL查询。您还需要添加source_content_type=application/json参数。因此,您的查询将如下所示:
source
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}}}}}