提问人:overexchange 提问时间:8/25/2017 最后编辑:overexchange 更新时间:9/25/2018 访问量:8894
全文搜索(Postgres)与弹性搜索
Full text search(Postgres) Vs Elastic search
问:
读取查询
在 Poggres中,全文索引允许对文档进行预处理并保存索引以供以后快速搜索。预处理包括:
将文档解析为令牌。
将标记转换为词素。
存储针对搜索而优化的预处理文档。
tsvector
type 在 Postgres 中用于全文搜索
tsvector
类型在以下方面与类型不同:text
消除大小写。大写/小写字母相同
删除停用词(和、或、不是、她、他和其他数百个词)——因为这些词与文本搜索无关
替换同义词并采用词干 ( -> )。在全文目录中,它没有单词,只有单词。
elephant
eleph
elephant
elep
可以(并且应该)使用 GIST 和 GIN 进行索引
带有权重的自定义排名 &
ts_rank
在Postgres中,弹性搜索(搜索引擎)如何比全文搜索更具优势?
答:
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更受欢迎
下一个:什么是“全局代码注册表”?
评论