【问题标题】:Full text search(Postgres) Vs Elastic search全文搜索(Postgres)与弹性搜索
【发布时间】:2018-02-03 08:47:45
【问题描述】:

阅读Query

在 Posgres 中,全文索引允许对文档进行预处理并保存索引以供以后快速搜索。预处理包括:

  • 将文档解析为标记。

  • 将标记转换为词位。

  • 存储为搜索优化的预处理文档。


tsvector 类型在 Postgres 中用于全文搜索

tsvector 类型与text 类型在以下方面有所不同:

  • 消除大小写。大小写字母相同

  • 删除停用词(and、or、not、she、him 和数百个其他词)-因为这些词与文本搜索无关

  • 替换同义词并采用词干 (elephant -> eleph)。在全文目录中,没有elephant这个词,而是elep这个词。

  • 可以(并且应该)使用 GIST 和 GIN 进行索引

  • 带有权重和ts_rank的自定义排名


Elastic 搜索(搜索引擎)如何优于 Postgres 中的全文搜索?

【问题讨论】:

    标签: postgresql elasticsearch indexing full-text-search object-oriented-database


    【解决方案1】:

    全文搜索和弹性搜索都基于相同的基本技术倒排索引,因此性能大致相同。

    FTS 将更容易部署。

    ES自带lucene,

    如果您想要带有 FTS 的 lucene,则需要额外的努力。

    【讨论】:

    • 对于全文搜索,除了 Postgres 数据库设置,我们还需要其他什么部署吗?
    • 不需要其他组件,但是在使用之前需要阅读和理解很多内容..
    • 主要优势可能是 Elastic 带有 NoSQL 数据库,而 PostGres 是 OODBMS... 例如:对于来自多个数据源的文本搜索.. 将来自多个数据源的数据收集到 NoSQL 更有意义.. .
    • NoSQL 没有添加任何东西。
    • 这个answer 谈论异构数据,其中 MongoDB 优于 PostGreSQL
    猜你喜欢
    • 1970-01-01
    • 2017-06-13
    • 2021-11-23
    • 1970-01-01
    • 2017-03-31
    • 2020-03-29
    • 2022-12-08
    • 1970-01-01
    • 2023-04-01
    相关资源
    最近更新 更多