gpt4 book ai didi

postgresql - 我应该使用 elasticsearch 进行非自由文本搜索吗

转载 作者:行者123 更新时间:2023-11-29 13:32:37 26 4
gpt4 key购买 nike

我使用 Postgres 作为数据仓库。我需要在许多字段上进行自由文本搜索。我的 DBA 建议不要使用 Postgres 进行自由文本搜索。我现在正在考虑 Elasticsearch 。问题是,如果用户同时按自由文本和某些结构化维度进行过滤,该怎么办。我应该同时查询 elastic 和 postgres 并取交集,还是可以从 elastic 提供所有查询?如果过滤器中没有自由文本怎么办 - elastic 是否适合我的通用查询?

编辑:根据要求提供更多信息。数据库将包含几百万行。我无法提供有关数据的具体细节,除了一行将包含约 30 列,其中一半是字符串,介于一个单词和几个句子之间。使用 elastic 的原因不仅仅是 DBA 反对 postgres 中的全文索引,而且 elastic 还提供了结果排名和特定的文本搜索语义。

最佳答案

elasticsearch 确实非常适合全文搜索,因为它在幕后使用了 lucene,但它也非常适合通过 filters 进行的结构化搜索。 .您可以用它做的另一件好事是数据分析,它允许可视化数据的聚合。

也就是说,您不一定需要全文搜索要求才能很好地使用 elasticsearch。在许多用例中,elasticsearch 仅用于我提到的这三个方面之一:全文搜索、结构化搜索或数据分析。下一步也是将它们组合在一起。

您的用例很常见,我建议继续考虑针对 elasticsearch 运行结构化查询,而不是查询两个系统。我可以预见的唯一障碍可能是文档关系,需要在 elasticsearch 中正确表示和处理。

看看 elasticsearch query DSL ,用于表示查询,并将结构化和非结构化搜索有效地结合在一起。

关于postgresql - 我应该使用 elasticsearch 进行非自由文本搜索吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20056798/

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