我从事在线搜索项目。它的数据库是MongoDB
我想制作一个搜索文本框,如下所示:
如果我想搜索一本书
作者是“乔”
标题是“我的书”
而发布者是“ tia”
我要在搜索文本框中输入:“ joe my book tia”或“ tia jo book”
所以我会得到结果的。
作者,标题和发布者在MongoDB上的JSON中
有人可以帮助我吗?
这是有关JSON的示例:
{“作者”:[ { “ id”:“ 1”, “ name”:“ Joe”, “姓氏”:“ Jeff” }, { “ id”:“ 1”, “ name”:“ Lama”, “姓氏”:“ moon” }],“标题”:“我的书”,“出版商”:“ tia”}
答案 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" } })