我有一个文档索引,其中包含3个字段name
、summary
和tags
name
是包含小短语的短文本,例如“Japanese Handmade Sword”(日本手工剑)summary
是描述某些产品的长文本,可能超过200个字。tags
是包含关键字的字符串数组,例如["Japanese", "Antiquity", "Weapon", "Katana"]
我需要将这些字段合并到一个搜索查询中,以获得所需的搜索结果。例如,当用户搜索“Japan”时,我应该得到此项目。但是,match
查询总是给我空结果,尽管我有数据,并且可以在没有查询的情况下查看所有文档。
下面是我的Map和索引设置,它为字段执行一些标记化。
PUT lessons
{
"settings": {
"index": {
"number_of_shards": 1
},
"refresh_interval": "5s",
"similarity": {
"string_similarity": {
"type": "BM25"
}
},
"analysis": {
"analyzer": {
"autocomplete": {
"filter": [
"lowercase"
],
"tokenizer": "standard"
},
"autocomplete_search": {
"type": "custom",
"filter": "lowercase",
"tokenizer": "standard"
}
},
}
},
"mappings": {
"properties": {
"name": {
"type": "text",
"analyzer": "autocomplete",
"search_analyzer": "autocomplete_search",
"fielddata": true,
"fields": {
"keyword": {
"type": "keyword"
}
}
},
"summary": {
"type": "text",
"analyzer": "autocomplete",
"search_analyzer": "autocomplete_search",
"fielddata": true,
"fields": {
"keyword": {
"type": "keyword"
}
}
},
"tags": {
"type": "text",
"search_analyzer": "autocomplete_search",
"fielddata": true,
"fields": {
"keyword": {
"type": "keyword"
}
}
}
}
}
}
我正在使用Kibana,但在下面运行查询时没有得到任何结果
GET lessons/_search
{
"query": {
"match": {
"summary": "Japan"
}
}
}
我的索引设置或Map有什么问题?
1条答案
按热度按时间2w3kk1z51#
您可以使用multi-match query在多个字段中搜索同一查询文本