【问题标题】:Body for searching anywhere随时随地搜索的主体
【发布时间】:2021-01-26 10:24:22
【问题描述】:

在 Elasticsearch 中,很容易执行以下搜索请求,例如通过浏览器:

<protocol>://<address>:<port>/<index>/_search?q="search term"

这必须对各种索引字段使用某种默认的匹配组合。

特定字段中通过搜索正文地址搜索可以找到搜索的常用示例。

上述类型的 URL 查询的正确搜索正文是什么?

【问题讨论】:

    标签: elasticsearch full-text-search match field


    【解决方案1】:

    q=... 实际上等同于 query_string 搜索。

    所以.../index/_search?q="search term" 相当于

    GET index/_search
    {
      "query": {
        "query_string": {
          "query": "search term"
        }
      }
    }
    

    query_string 查询的参数之一是default_field,如果未指定,则等于名为index.query.default_field 的索引设置的值,默认值为*(即所有字段)

    如果您想将搜索限制在特定字段,那么您可以这样做:

    GET index/_search
    {
      "query": {
        "query_string": {
          "query": "search term",
          "default_field": "content"
        }
      }
    }
    

    这相当于.../index/_search?q=content:"search term"

    【讨论】:

    • 谢谢!我确信这是隐藏在文档中的某个地方,但也许其他一些人同意我的观点,即 ES 文档是一团糟;)
    • 这能回答你的问题吗?
    • 我的答案的第一行有一个链接到与此相关的实际文档,但由于 SO 样式,它并没有很好地显示。
    • 我在 Google 上搜索了“Elasticsearch 搜索任何地方”,但这仅指向全文查询...
    • 嗯,谷歌是对的,全文查询正是您可以找到query_string 的地方:elastic.co/guide/en/elasticsearch/reference/current/…
    猜你喜欢
    • 1970-01-01
    • 2013-02-22
    • 1970-01-01
    • 1970-01-01
    • 2012-12-07
    • 1970-01-01
    • 2016-12-10
    • 2020-12-25
    • 1970-01-01
    相关资源
    最近更新 更多