为表创建全文搜索页面

时间:2016-05-03 15:36:52

标签: node.js search express mongoose full-text-search

您好我正在为猫鼬收藏品创建搜索选项。问题在于关键字处理。我需要处理关键字,例如它们是否在""它们应该被视为单个单词,如果它们以逗号分隔或空格分隔,那么它们应该被视为OR条件参数,这些如何跟踪多个输入""和逗号分开。任何参考或示例都会非常有用。

1 个答案:

答案 0 :(得分:0)

查看$text运营商文档。

假设您有一个名为posts的集合,其中包含以下文档:

{postText: 'The dog ran really fast.'},
{postText: 'The cat ran pretty slow.'},
{postText: 'That hampster is crazy fast.'}

确保您已创建文本索引。

db.posts.createIndex({postText: "text"})

对于你的情况,只需传递用空格分隔的关键字。

// this will return all documents
db.posts.find({$text: {$search: 'dog cat hampster'}})

// this will return two documents (dog & hampster)
db.posts.find({$text: {$search: 'really fast'}})

要准确匹配短语,请将其用引号括起来。

// this will return one document (dog)
db.posts.find({$text: {$search: '"really fast"'}})

您也可以将它们合并。

// this will return all documents
db.posts.find({$text: {$search: '"really fast" cat'}})

希望有所帮助。