gpt4 book ai didi

elasticsearch - 如何仅使用建议者执行Elasticsearch Multisearch?

转载 作者:行者123 更新时间:2023-12-02 23:39:27 30 4
gpt4 key购买 nike

我需要返回来自两个不同索引的4个独立建议者的建议。

我目前正在通过向Elasticsearch发送两个单独的请求(每个索引一个)并将结果合并到我的应用程序中来实现。显然,当Multisearch API可用时,这似乎并不理想。

通过使用Multisearch API,我可以将这些建议请求组合为一个,并可以从两个索引中正确检索所有4个完成建议的结果。

但是,它还会自动对所选索引执行match_all查询。我当然可以通过将searchType设置为count来最大程度地减少此影响,但结果比两个单独的curl请求差。

看来,无论我如何尝试,都无法阻止Multisearch API对每个索引执行某种查询。

例如

  {
index: 'users',
type: 'user'
},
{
suggest: {
users_suggest: {
text: term,
completion: {
size : 5,
field: 'users_suggest'
}
}
},
{
index: 'photos',
type: 'photo'
},
{
suggest: {
photos_suggest: {
text: term,
completion: {
size : 5,
field: 'photos_suggest'
}
}
}
}

像上面这样的请求明显省略了此多重搜索请求的 {query:{}部分,仍然执行 match_all查询并返回索引中的所有内容。

有什么办法可以防止查询的发生,以便我可以简单地获取合并的完成建议者的结果吗?还是有另一种方法可以在一个查询中针对多个索引搜索多个建议者?

提前致谢

最佳答案

设为size = 0,这样就不会返回任何匹配,而只会返回建议。

{
"size": 0,
"suggest":{}
}

对于每个请求。

关于elasticsearch - 如何仅使用建议者执行Elasticsearch Multisearch?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24891441/

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