gpt4 book ai didi

elasticsearch - elasticsearch more_like_this查询不适用于大于6的数组

转载 作者:行者123 更新时间:2023-12-03 02:32:13 25 4
gpt4 key购买 nike

我有在Elasticsearch中用一组关键字字段索引的文档。以下是映射

{
"alerts": {
"aliases": {},
"mappings": {
"properties": {
"recordTags": {
"type": "keyword"
}
}
}
}

我将recordTags插入为数组。
一个文档具有7个唯一的recordTag。从第一个文档开始,还有一个文档带有一个recordTags。

第一个文档如下所示
{
"_index": "alerts",
"_type": "_doc",
"_id": "9bcb78db-77bc-4ed9-9972-d305f145a06a",
"_version": 30,
"_seq_no": 481,
"_primary_term": 5,
"found": true,
"_source": {
"recordTags": [
"tag1",
"tag2",
"tag3",
"tag4",
"tag5",
"tag6",
"tag7"
],
}
}


其他文件如下所示
{
"_index": "alerts",
"_type": "_doc",
"_id": "582d9497-c43b-4081-a6c7-189ede176702",
"_version": 30,
"_seq_no": 481,
"_primary_term": 5,
"found": true,
"_source": {
"recordTags": [
"tag1"
],
}
}

现在,当我基于recordTags字段查询与第一个文档类似的记录时,它不会带来任何结果。我使用以下查询
{
"query": {
"bool": {
"should": [
{
"more_like_this": {
"fields": [
"recordTags"
],
"like": [
{
"_index": "alerts",
"_id": "9bcb78db-77bc-4ed9-9972-d305f145a06a"
}
],
"min_term_freq": 1,
"min_doc_freq": 1,
"max_query_terms": 12
}
}
]
}
}
}

有人可以启发我。我无法解决问题。

最佳答案

原因是参数minimum_should_match。此参数的默认值为30%。这意味着原始文档中至少有30%的术语应与目标文档中的相匹配。如果术语计数的30%得出的是浮点值,那么它将取下该值。

由于原始文档中有7个字词,因此至少需要30%(即2.1)即2字词才能在文档中匹配,才有资格获得结果。更改参数minimum_should_match的值有效。

关于elasticsearch - elasticsearch more_like_this查询不适用于大于6的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59679926/

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