首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与Elasticsearch相比,mongoDB和Postgres等数据库的搜索引擎做得有多好?(2020年)

与Elasticsearch相比,mongoDB和Postgres等数据库的搜索引擎做得有多好?(2020年)
EN

Stack Overflow用户
提问于 2021-01-02 01:14:08
回答 2查看 787关注 0票数 0

我正在一个网站上工作,在那里用户可以创建一个数据库条目。这些条目都是相同的形式,所以到目前为止,我使用的是Sqlite (与FTS5),这是我所知道的唯一的数据库;)

然而,用户可以在网站上搜索这些条目是至关重要的。全文搜索工作得很好(用户大概知道他们在寻找什么),但我需要两个改进:

  1. 错误拼写应该返回正确的条目(我已经看到sqlite的拼写扩展,但我不知道它的效果有多好),更重要的是,如果用户在网站上输入了几个查询词,我会尝试与那些与sql查询匹配的单词匹配。如果用户输入的单词太多,它将返回0匹配:

例如:如果用户将"sars covid 19“输入到搜索栏中:

代码语言:javascript
复制
CREATE VIRTUAL TABLE TEST USING FTS5(SomeText);

INSERT INTO TEST(SomeText) VALUES 
('Covid 19');

SELECT SomeText 
FROM TEST 
WHERE SomeText MATCH 'sars covid 19';

=> 0匹配,但我希望它返回'covid 19‘条目。

我意识到对于一个需要很好地处理搜索的数据库来说,sqlite可能太简单了。现在我的问题是: Postgres或MongoDB有包含我需要的功能的搜索引擎吗?还是值得深入研究弹性搜索等问题的解决方案?

我在这方面发现的大多数文章都有5-10年的历史,所以我想知道目前关于数据库中的搜索引擎的情况是什么。任何提示都非常感谢。

EN

回答 2

Stack Overflow用户

发布于 2021-01-02 12:33:15

Elasticsearch肯定会成功的。您只需考虑如何对文档进行索引,就可以以索引的方式找到它们,在上下文中,默认文本似乎将与匹配查询一起工作:

https://www.elastic.co/guide/en/elasticsearch/reference/current/full-text-queries.html

在这种简单的情况下,MongoDb也能工作:https://docs.mongodb.com/manual/text-search/,但是mongo不适用于令牌程序,所以如果您需要升级文本搜索,mongo将是有限的。

Postgresql可以这样做,但我还不太熟悉,如果您有10k条目,它将是肯定的,如果您期望100万,mongo或es会更好。

如果您必须在mongodb和es之间进行选择,您必须在问题中更加具体,对于全文,es确实很好,有很多特性,mongodb也提供了一些很好的数据库工具。有时会更好,有时是芒果,取决于你需要什么。如果你只想要全文,那肯定是必须的。

票数 1
EN

Stack Overflow用户

发布于 2021-01-02 12:46:34

合并es + mongodb很好,您可以在es中索引和执行全文搜索,并将原始文档保留在mongodb中索引的一些关键字段中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65535206

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档