转换Google式搜索查询以通过Node.js搜索Mongo数据库

时间:2013-01-26 04:19:49

标签: javascript regex

我希望能够将“Google-eqsue”格式的搜索字符串转换为可用于搜索Mongo数据库的内容(我认为RegEx在这里是一个好主意,但我对其他想法持开放态度)。我的意思是Google-esque查询:

"Search for" +this -"but not this"

理想情况下,我正在寻找一种Javascript算法,该算法将采用Google-esque查询并返回一些内容,这些内容将允许我对MongoDB中的文档文本执行单个快速查询。我之所以认为最好将其翻译成RegExp,是因为正则表达符合这些目标(编辑过)。

1 个答案:

答案 0 :(得分:1)

您是否尝试过mongo的新text search功能?

来自release notes

  

使用短语(即包含在转义引号中的术语),搜索会在搜索字符串中与任何其他术语执行AND;例如搜索“\”twinkle twinkle \“little star”搜索“twinkle twinkle”和(“little”或“star”)。

  

搜索包含烘焙或咖啡字样的文件,但不包括蛋糕:

db.collection.runCommand( "text", { search: "bake coffee -cake" } )
  

使用 - 作为术语的前缀来指定搜索字符串中的否定。该查询在内容字段中返回包含烘焙或咖啡的文档,但不包含所有不区分大小写的蛋糕。