匹配文档,如果搜索字符串中存在的字段中的所有术语 我有以下文件: {“ id”:1,“城市”:“纽约”}, {“ id”:2,“城市”:“新奥尔良”}, {“ id”:3,“城市”:&...

问题描述 投票:0回答:1
当我搜索“纽约的披萨”时,我希望只能与

id:1

如何创建这样的查询?
    

您可以使用

shingle
tokenfilter

Mapping

elasticsearch opensearch
1个回答
0
投票

领域有

city

city_analyzer

将文本转换为单个令牌

搜索分析仪是
city_analyzer

。分析仪将文本分为2个项目和3个项目的木瓦,以将城市名称提取为单个令牌

你和我的文件
shingle_analyzer
搜索“纽约”

POST /cities/_bulk {"create":{}} {"city":"New York"} {"create":{}} {"city":"New Orleans"} {"create":{}} {"city":"Old York"} {"create":{}} {"city":"York"}

response

GET /cities/_search?filter_path=hits.hits { "query": { "match": { "city": { "query": "Pizza in New York", "analyzer": "shingle_analyzer" } } } }

约克(York)受到热门歌曲,因为也有单个字的城市名称

搜索“约克”并收到回应

{ "hits" : { "hits" : [ { "_index" : "cities", "_type" : "_doc", "_id" : "myQonpUBApSWQ18JuXcs", "_score" : 1.2039728, "_source" : { "city" : "New York" } }, { "_index" : "cities", "_type" : "_doc", "_id" : "niQonpUBApSWQ18JuXcs", "_score" : 1.2039728, "_source" : { "city" : "York" } } ] } }

	

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.