mongodb全文搜索策略

ste*_*tew 13 mongodb elasticsearch

我们正在尝试开发一种策略,使用elasticsearch在我们的mongodb实例上进行全文搜索.似乎我们想要用作过滤器的每个键都必须包含在弹性索引中.我们可能希望将mongo中的每个密钥用作过滤器 - 即对描述进行全文搜索,按日期和电话号码进行过滤.有没有人有任何真实的经验,可以分享mongo的全文?

也许我们可以将elasticsearch用作db?

Ant*_*ton 14

我没有看到任何理由将ElasticSearch与MongoDb结合使用,只需将ElasticSearch用作必须搜索的文档的单独文档存储.是的,你甚至可以作为整个数据库.当然,这取决于您的域模型和其他因素.

如果您不需要词干,模糊搜索,复杂的通配符搜索,则可以使用mongoDb进行搜索.插入新文档时,将其拆分为小写的单词,然后添加到数组"单词"中.稍后您可以使用此数组执行搜索请求regex.你不能I在这个正则表达式中使用(忽略大小写)选项,并且你只能搜索LIKE%通配符(或没有通配符),否则搜索不会使用mongoDb索引.

还有一个选择 - 您可以尝试为mongoDb 找到河流

另一种选择 - Lucene如果您使用的是Java.也许你可以通过Directory这种方式扩展类,Lucene将在MongoDb而不是文件系统或RAM中存储索引.我没有在这方面做过任何研究,但我认为这是可能的


aeu*_*ere 9

我通过在@Umar建议的字符串中分割单词来试验MongoDB中的全文搜索.老实说,它是一个数据库而不是搜索引擎所以我会将Mongo用于持久存储,而ElasticSearch用于搜索引擎的一部分.事实上,我会坚持使用像Postgresql这样的东西进行持久存储,然后将想要搜索的数据推送到搜索引擎.http://gdal.org/ogr/drv_elasticsearch.html 是一个驱动程序,可以让您快速将数据从一个RDBMS导出到ElasticSearch.只要数据是连接到输入源的一种方式,数据就不必是地理空间来使用GDAL.

亚当