gpt4 book ai didi

python - Elasticsearch 中的关键字搜索和过滤

转载 作者:行者123 更新时间:2023-12-01 07:12:22 24 4
gpt4 key购买 nike

我必须在一个字段中搜索关键字,并在另一字段中搜索完全匹配的内容。我尝试过一些方法,但似乎根本不起作用。

我尝试向作者提供完整的文章,因为我已将其放入 AWS ElasticSearch,但它仍然无法检索到任何内容。

query=json.dumps({
"query": {
"bool": {
"must": {
"match": {
"article": "man killed kim jones"
}
},
"filter": {
"term": {
"author": "Barbara Boyer"
}
}
}
}
})
response = requests.get(url-ES-domain/data/_search?",headers=headers,data=(query))
response.json()

映射详细信息

{
"mappings": {
"article": {
"full_name": "article",
"mapping": {
"article": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
}
}
}
}
}

这是文章中的关键字。即使我在 ES 索引中提供完整的文章,它仍然不会给出任何点击。

最佳答案

尝试这样

映射

{
"settings": {
"analysis": {
"analyzer": {
"my_analyzer": {
"tokenizer": "my_tokenizer"
}
},
"tokenizer": {
"my_tokenizer": {
"type": "ngram",
"min_gram": 3,
"max_gram": 20,
"token_chars": [
"letter",
"digit"
]
}
},
"normalizer": {
"lc_normalizer": {
"type": "custom",
"filter": ["lowercase"]
}
}
},
"max_ngram_diff": 20
},
"mappings": {
"properties": {
"article": {
"type": "text",
"analyzer": "my_analyzer",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"author": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256,
"normalizer": "lc_normalizer"
}
}
},
"key": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"publication": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"title": {
"type": "text",
"analyzer": "my_analyzer",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
}
}
}
}

查询

{
"query": {
"bool": {
"must" : {
"multi_match" : {
"query": "man killed kim jones",
"fields": [ "article", "title" ]
}
},
"filter": {
"term": {
"author.keyword": "Maddie Hanna"
}
}
}
}
}

上面的查询返回匹配项并返回您已添加到文档中的文档。

当您搜索多字匹配时,我建议您使用 match_phrase 查询。默认情况下,elasticsearch 将为文本字段创建关键字映射。

注意:您可以使用 Kibana UI 尝试这些操作由弹性团队提供。这会节省很多时间。

关于python - Elasticsearch 中的关键字搜索和过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58145815/

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