全文搜索(Postgres)Vs弹性搜索

时间:2017-08-25 10:06:28

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

阅读Query

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

  • 将文档解析为令牌。

  • 将令牌转换为词汇。

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

在Postgres中使用

tsvector类型进行全文搜索

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

  • 消除案件。大写/小写字母相同

  • 删除停用词(和,或者,不是,她,他和其他数百人) - 因为这些词与文本搜索无关

  • 取代同义词并取词干(elephant - > eleph)。在全文目录中,它没有单词elephant,而是单词elep

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

  • 自定义排名与权重& ts_rank

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

1 个答案:

答案 0 :(得分:7)

全文搜索和弹性搜索都建立在相同的基本技术倒置索引之上,因此性能大致相同。

FTS将更容易部署。

ES附带lucene,

如果你想要使用FTS需要额外的努力。