gpt4 book ai didi

performance - 加快Elasticsearch的查询速度

转载 作者:行者123 更新时间:2023-12-03 02:20:09 27 4
gpt4 key购买 nike

像这样的查询有什么问题呢?它是从头开始写的。它返回相关结果,但速度太慢(此示例花费 187.9 ms )

{
"query": {
"bool": {
"must": [{
"more_like_this": {
"fields": ["similarity.analyzed"],
"like": [{
"_id": 4
}, {
"_id": 550
}, {
"_id": 757
}],
"min_term_freq": 1,
"min_doc_freq": 1,
"analyzer": "searchkick_search2",
"minimum_should_match": "10%"
}
}, {
"range": {
"count_posts": {
"gt": 0
}
}
}],
"must_not": [{
"terms": {
"_id": [4, 550, 757]
}
}]
}
},
"size": 10
}
该查询查找与给定标签集相似的标签。
相似性-带有所有帖子标题的文本字段,并带有空格。
count_posts-数字字段,其中包含每个标签的帖子数。
在Ubuntu 18.04上作为单个节点运行Elasticseach 7.8.0。带有Searchkick gem的Rails 5应用程序。

最佳答案

Whats wrong with this more like this query?

"like": [{
"_id": 4
}, {
"_id": 550
}, {
"_id": 757
}]
它的作用类似于 multi get API。它执行以下操作。
  • 获取_idlike提到的所有文档
  • 使用field选项分析
  • 来分析 analyser
  • 从step1的匹配文档中分析相同的字段。标记器的过滤器列表还添加了ms
  • 计算文档,术语频率以及最小匹配。

  • 而且您还有两个条件。文件说

    A more complicated use case consists of mixing texts with documents already existing in the index.


    不幸的是,我认为这无法进一步优化。但是您可以在 like中添加文本而不是id,以使其变得更好。希望查询由于缓存而不总是花费100ms以上。

    关于performance - 加快Elasticsearch的查询速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62597530/

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