gpt4 book ai didi

elasticsearch - 如果两个文档包含相同的词,如何在弹性中搜索文档?

转载 作者:行者123 更新时间:2023-11-29 02:57:27 24 4
gpt4 key购买 nike

我有以下两个弹性文档:

文档-1

{"name":"doc1","tags":["Hello World"]}

Document-2

{"name":"doc2", "tags":["World"]}

我想搜索包含“World”作为文档中单个单词的文档,但此查询返回两个文档:

{"query":{"bool":{"must":[{"match":{"tags":{"query":"World"}}}]}}}

我怎样才能做到这一点?

最佳答案

如果你的映射有 keyword 用于 tags 字段,你可以使用它,例如

GET your_index/doc
{
"query": {
"bool": {
"must": [
{
"match": {
"tags.keyword": { // use `keyword` field here
"query": "World"
}
}
}
]
}
}
}

仅当您的映射具有如下所示

{
"your_index": {
"mappings": {
"doc": {
"properties": {
"name": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"tags": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword", // this mapping is required
"ignore_above": 256
}
}
}
}
}
}
}
}

关于elasticsearch - 如果两个文档包含相同的词,如何在弹性中搜索文档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52413733/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com