使用术语查询搜索多字段

Search multi field with term query

我在索引中有一些文档..

"hits" : [
      {
        "_index" : "siem-referencedata-table-table2d526444eff99b1706053853ef7",
        "_type" : "_doc",
        "_id" : "0table222cc244b04b59d9ecafb0476e6",
        "_score" : 1.0,
        "_source" : {
          "column-name1" : "10.1.10.1",
          "column-name2" : "range(100,200)",
          "column-name3" : "nam3",
          "create_time" : "2022-05-21 03:30:39",
          "last_seen" : "2022-05-21 03:30:39",
          "id" : "0table222cc244b04b59d9ecafb0476e6"
        }
      },...

我想搜索包含三个字段 column-name1column-name2column-name3 的文档。 我使用下面的查询和 term 来搜索确切的考虑词:

{
  "query": {
    "bool": {
      "must": [
        {
          "term": {
            "column-name1": {"value":"10.1.10.1"}
          }
        },
        {
          "term": {
            "column-name2": {"value":"range(100,200)"}
          }
        },
        {
          "term": {
            "column-name3": {"value":"nam3"}
          }
        }
      ]
    }
  }
}

它没有"column-name2": {"value":"range(100,200)"}..我应该用range能力做什么?还有其他方法可以解决这个问题吗?

通过将 keyword 添加到以下字段来解决查询:

{
  "query": {
    "bool": {
      "must": [
        {
          "term": {
            "column-name1.keyword": {"value":"10.1.10.1"}
          }
        },
        {
          "term": {
            "column-name2.keyword": {"value":"range(100,200)"}
          }
        },
        {
          "term": {
            "column-name3.keyword": {"value":"nam3"}
          }
        }
      ]
    }
  }
}

感谢Barkha Jain