MongoDB-搜索文本

MongoDB-搜索文本,mongodb,full-text-search,text-search,Mongodb,Full Text Search,Text Search,选择字符串值包含一组单词或短语的mongodb条目的最佳策略是什么?我正在考虑一些与mysql类似的函数,例如 WHERE (TEXT LIKE "% apple %") or (TEXT LIKE "% banana %") 我见过一些涉及字符串标记化的选项,但这将涉及为所有文本构建Unigram,这将是一个巨大的问题。不?您可以在MongoDB查询中使用正则表达式支持。以下链接提供了更多详细信息 以下是两个例子,说明上述链接将来是否会再次移动: db.collection.fin

选择字符串值包含一组单词或短语的mongodb条目的最佳策略是什么?我正在考虑一些与mysql类似的函数,例如

    WHERE (TEXT LIKE "% apple %") or (TEXT LIKE "% banana %")

我见过一些涉及字符串标记化的选项,但这将涉及为所有文本构建Unigram,这将是一个巨大的问题。不?

您可以在MongoDB查询中使用正则表达式支持。以下链接提供了更多详细信息

以下是两个例子,说明上述链接将来是否会再次移动:

db.collection.find( { field: /acme.*corp/i } );
db.collection.find( { field: { $regex: 'acme.*corp', $options: 'i' } } );

MongoDB目前没有全文搜索功能,但它很容易使用SOLR等外部搜索引擎

我强烈反对你自己尝试用正则表达式或词干等重建文本搜索。您更应该关注应用程序自身的功能:)


我使用以下组合:,和。它在生产环境中工作得很好,开发设置也很简单。

Mongo从2.4开始就支持文本搜索。 我的经验相当积极

在启用setParameter文本搜索的情况下启动服务器 然后在集合上启用索引
然后使用runCommand进行搜索,MongoDB内置的文本搜索无法满足我对使用复合索引的现有数据库的要求。我现在正在使用,它一直工作得非常好。它使用自然词干和距离算法来返回相关性分数

User.search('Malaysia Car Food',{username:1},{},  function(err, u){
   console.log('Search Results: '+JSON.stringify(u));
}); 

+我还建议大家投票支持这一点(虽然已经排在第二位,但所有投票都有帮助):