【问题标题】:Convert Elasticsearch kibana query string format to URI Search format将 Elasticsearch kibana 查询字符串格式转换为 URI 搜索格式
【发布时间】:2018-06-29 17:06:02
【问题描述】:

从上周开始,我开始使用 AWS 上的 Elastic Search Service。我当前的 Elasticseach 版本是 6.X.X 和 Kibana 6.X.X,现在我对在 Kibana 客户端上运行的查询格式有点灵活。但我的问题是我无法将查询转换为将在 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,例如 qdf 等:https://www.elastic.co/guide/en/elasticsearch/reference/6.0/search-uri-request.html 但不能将上述查询字符串转换为 URI 搜索格式。实际上,我对 SOLR 查询格式非常灵活,支持 q、fq、sort、start、rows、boost、facet、group 等。所以,据我所知,Elastic search 也使用了 Lucene Indexing 所以我的基本问题是

1.如何将上述 ES 查询字符串转换为 URI 搜索格式?

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

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

注意:我可以使用 ?q= 参数转换基本的 CRUD 操作,但很难像 facet 一样隐藏其他操作、boosting、分组等。

编辑:实际上我想说这个查询参数返回的文档数量相同。都来自 solr 和 es - 这里我只是将 _source 用于 ES,因为我们将 fl 用于 SOLR。否则一切都一样

https://my_host/rental_properties/_search?_source=id,code:feed_provider_id,feed_provider_id,feed,property_name,pax:occupancy,bedroom_count,min_stay,star_rating,night_rate_min,currency&q=feed:11 AND -booked_date:[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 格式呢?

【问题讨论】:

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


    【解决方案1】:

    请注意,通过将 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}}}}}
    

    【讨论】:

    • 非常感谢@Val。你说的我明白了
    • 这有帮助吗? elasticsearchtutorial.com/…
    • 是的,先生。但我想在 SOLR 和 ES 上使用相同的格式,例如 q=feed:11 AND -booked_date:[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 不是 json 查询字符串
    • 这是一个 Lucene 表达式查询,您也可以使用 q= 查询字符串参数将它与 ES 一起使用
    • 是的,我知道。您的另一个查询,是否有任何在线资源可以帮助我轻松地在 SOLR 和 ES 查询字符串参数之间进行映射?例如,q 在 ES 和 SOLR 上是相同的,从->开始,大小->行,_source->fl 分别在 ES 和 SOLR 上,但是 ES 和 SOLR 之间的其他参数映射呢,例如 fq、facet、group 等。
    猜你喜欢
    • 2017-06-23
    • 2012-02-12
    • 2012-02-05
    • 2012-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-20
    • 2013-09-22
    相关资源
    最近更新 更多