我有一个名为的字段,它位于嵌套字段“name”中,该字段是ElasticSearch中的“关键字”。名称字段包含2个值。拉贾戈帕兰拉贾戈帕兰。如果我查询“rajagopalan”,我应该只得到第2项。如果我查询完整的jagannathan rajagopalan,我应该得到1。我如何实现它?
cbjzeqam1#
您需要使用用于精确搜索的术语查询。根据您的用例添加了一个工作示例。索引Map
{ "mappings": { "properties": { "name": { "type": "nested", "properties": { "keyword": { "type": "keyword" } } } } } }
索引示例文档
{ "name" : { "keyword" : "Jagannathan Rajagopalan" } }
还有另一个医生
{ "name" : { "keyword" : "Jagannathan" } }
和搜索查询
{ "query": { "nested": { "path": "name", "query": { "bool": { "must": [ { "match": { "name.keyword": "Jagannathan Rajagopalan" } } ] } } } } }
搜索结果
"hits": [ { "_index": "key", "_type": "_doc", "_id": "2", "_score": 0.6931471, "_source": { "name": { "keyword": "Jagannathan Rajagopalan" } } } ]
1条答案
按热度按时间cbjzeqam1#
您需要使用用于精确搜索的术语查询。根据您的用例添加了一个工作示例。
索引Map
索引示例文档
还有另一个医生
和搜索查询
搜索结果