gpt4 book ai didi

elasticsearch - 在 Elasticsearch 中组合(独立)索引

转载 作者:行者123 更新时间:2023-12-03 01:20:34 26 4
gpt4 key购买 nike

我在 flex 搜索中有两个索引,我想在搜索中将它们结合起来。

一个索引有一些文章,例如

(
[id] => 25
[name] => my test artcile
[city] => [
id => 123
]
)

第二个索引具有城市名称,例如
(
[id] => 123
[name] => my city
)

因此,如果我在文章中进行搜索查询,则需要这样的结果,结果中也使用城市名称,例如
(
[id] => 25
[name] => my test artcile
[city] => [
id => 123
name => my city
]
)

有没有办法做到这一点?否则,我必须扩展文章的导入范围以直接添加城市名称,但是首选方式是索引之间的连接。

最佳答案

Elasticsearch不可能/不支持在搜索时合并来自独立索引的文档。通常是通过应用程序侧连接完成的(您的应用程序向Elasticsearch发送了2个请求:

  • 第一个检索匹配文件的文件
  • 第二个检索您从第一个请求
  • 返回的文档所在的国家/地区

    Elasticsearch的 join类型仅允许以相同索引而非跨索引的方式连接文档。 terms查询可用于在另一个索引中查找值,以基于这些值过滤掉另一个索引中的文档。

    如评论部分所述,Elasticsearch不是关系数据库,它只是具有一些基本功能来支持关系处理。使用RDBMS,您可以在查询时执行“昂贵的”联接,RDBMS已针对快速写入进行了优化(较小的实体,真相的单个版本,一次写入,对事务的支持等)。搜索引擎针对快速阅读和搜索请求进行了优化,因此我们要求您预先执行“昂贵”的连接,并为非规范化文档建立索引。通常,这是首选方法。

    关于elasticsearch - 在 Elasticsearch 中组合(独立)索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60379286/

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