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

Full text search(Postgres) Vs Elastic search

提问人:overexchange 提问时间:8/25/2017 最后编辑:overexchange 更新时间:9/25/2018 访问量:8894

问:

读取查询

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

  • 将文档解析为令牌。

  • 将标记转换为词素。

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


tsvectortype 在 Postgres 中用于全文搜索

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

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

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

  • 替换同义词并采用词干 ( -> )。在全文目录中,它没有单词,只有单词。elephantelephelephantelep

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

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


在Postgres中,弹性搜索(搜索引擎)如何比全文搜索更具优势?

PostgreSQL Elasticsearch 索引全 文搜索 对象数据库

评论


答:

11赞 Jasen 8/25/2017 #1

全文搜索和Elasticsearch都建立在相同的基本技术上:倒排索引,因此性能将大致相同。

FTS将更容易部署。

ES自带lucene,

如果您想要带有 FTS 的 Lucene,那将需要额外的努力。

评论

0赞 overexchange 8/25/2017
对于全文搜索,除了 Postgres 数据库设置之外,我们还需要其他任何东西进行部署吗?
0赞 Jasen 8/26/2017
不需要其他组件,但是在使用之前需要阅读和理解很多东西。
1赞 overexchange 9/25/2018
主要优势可能是 Elastic 携带 NoSQL 数据库,而 PostGres 是 OODBMS......例如:用于从多个数据源进行文本搜索。将数据从多个数据源收集到 NoSQL 更有意义......
0赞 Jasen 12/6/2018
NoSQL 不添加任何内容。
1赞 overexchange 12/17/2018
这个答案谈到了异构数据,其中MongoDB比PostGreSQL更受欢迎