MongoDB中的高级搜索文本框

时间:2019-02-14 14:10:00

标签: json mongodb search nosql

我从事在线搜索项目。它的数据库是MongoDB 我想制作一个搜索文本框,如下所示: 如果我想搜索一本书
作者是“乔” 标题是“我的书” 而发布者是“ tia”

我要在搜索文本框中输入:“ joe my book tia”或“ tia jo book”

  

所以我会得到结果的。

作者,标题和发布者在MongoDB上的JSON中

有人可以帮助我吗?

这是有关JSON的示例:

  

{“作者”:[       {         “ id”:“ 1”,         “ name”:“ Joe”,         “姓氏”:“ Jeff”       },       {         “ id”:“ 1”,         “ name”:“ Lama”,         “姓氏”:“ moon”       }],“标题”:“我的书”,“出版商”:“ tia”}

1 个答案:

答案 0 :(得分:1)

MongoDB提供text indexes以支持对字符串内容的文本搜索查询。文本索引可以包含任何值为字符串或字符串元素数组的字段。

根据您的情况,您可以在mongo shell中运行以下命令,以允许在“作者姓名”和“发布者”字段中进行文本搜索:

db.test.createIndex({ 'Author.name': 'text', 'Author.last_name': 'text', Publisher: 'text'})

然后,您可以使用以下查询从列表“ joe”,“ my”,“ book”和“ tia”中查找包含任何术语的所有文档。

db.test.find({ $text: { $search: "joe my book tia" } })