我无法在没有属性的elasticsearch中进行查询< fieldname>

qij5mzcb  于 2021-06-14  发布在  ElasticSearch
关注(0)|答案(1)|浏览(399)

这是用于搜索的查询:

{ "query": {
  "term": {"properties.subscriptionid": "test"
  }
    }
   }

结果:

"hits": [
            {
                "_id": "ILojbHQB1164tHwpvfoc",
                "_source": {
                    "properties": {
                        "subscriptionid": "test",
                    }

如果我使用:

{ "query": {
    "term": {"subscriptionid": "test"
    }
      }
     }

我没有得到任何结果。
索引Map:

"mappings": {
       "properties": {
         "subscriptionid": {
            "type": "keyword"
         },
         "resources":{
            "type": "nested",
}
}
  • 删除不必减少代码区域
lyr7nygr

lyr7nygr1#

正如@val指出的,您在问题中发布的索引Map中有一些不匹配的地方。请参阅术语查询,以获得有关它的详细信息。
添加索引数据、Map(与问题中提到的相同)和搜索查询的工作示例。
索引Map:

{
  "mappings": {
    "properties": {
      "resources": {
        "type": "nested" 
      },
      "subscriptionid": {
        "type": "keyword" 
      }
    }
  }
}

索引数据:

{
  "subscriptionid": "test",
  "resources": [
    {
      "title": "elasticsearch"
    }
  ]
}

{
   "subscriptionid": "test"
}

搜索查询:

{
  "query": {
    "term": {
      "subscriptionid": "test"
    }
  }
}

搜索结果:

"hits": [
      {
        "_index": "stof",
        "_type": "_doc",
        "_id": "1",
        "_score": 0.2876821,
        "_source": {
          "subscriptionid": "test"
        }
      }
    ]

使用术语查询搜索嵌套类型:

{
  "query": {
    "nested": {
      "path": "resources",
      "query": {
        "bool": {
          "must": [
            { "term": { "resources.title": "elasticsearch" } }
          ]
        }
      }
    }
  }
}

嵌套Map的搜索结果:

"hits": [
      {
        "_index": "stof",
        "_type": "_doc",
        "_id": "2",
        "_score": 0.2876821,
        "_source": {
          "subscriptionid": "test",
          "resources": [
            {
              "title": "elasticsearch"
            }
          ]
        }
      }
    ]

相关问题