【问题标题】:Elasticsearch inverted search queryElasticsearch 反向搜索查询
【发布时间】:2021-08-11 23:39:20
【问题描述】:

我想使用 elasticsearch 在必须包含在我的搜索查询中的数据中进行搜索。

例子:

{
  "query":{
     "match":{       
       "field":"some data to be searched"
      }
   }
}

应返回以下字段,因为查询数据包含some 和data

{
 "field":"some data"
}

但此搜索查询不应返回任何内容:

{
  "query":{
     "match":{ 
        "field":"data to be searched"
      }
   }
}

我该怎么做?

【问题讨论】:

    标签: java regex elasticsearch elasticsearch-5


    【解决方案1】:

    您可以使用Percolate query 来实现您的用例。

    添加一个包含索引数据、映射、搜索查询和搜索结果的工作示例

    索引映射:

    {
      "mappings": {
        "properties": {
          "field": {
            "type": "text"
          },
          "query": {
            "type": "percolator"
          }
        }
      }
    }
    

    索引数据:

    {
      "query": {
        "match": {
          "field": {
            "query": "some data",
            "operator": "AND"
          }
        }
      }
    }
    

    搜索查询:

    {
      "query": {
        "percolate": {
          "field": "query",
          "document": {
            "field": "data to be searched"
          }
        }
      }
    }
    

    搜索结果:

    "hits": []
    

    搜索查询:

    {
      "query": {
        "percolate": {
          "field": "query",
          "document": {
            "field": "some data to be searched"
          }
        }
      }
    }
    

    搜索结果:

    "hits": [
          {
            "_index": "67658971",
            "_type": "_doc",
            "_id": "1",
            "_score": 0.26152915,
            "_source": {
              "query": {
                "match": {
                  "field": {
                    "query": "some data",
                    "operator": "AND"
                  }
                }
              }
            },
            "fields": {
              "_percolator_document_slot": [
                0
              ]
            }
          }
        ]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-19
      • 2017-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-27
      • 2015-03-08
      相关资源
      最近更新 更多