我尝试创建具有三个文本输入的搜索表单:
用户可以填写所有这些输入并搜索具有下一个文档结构的集合:
{
"id" : 123,
"description" : "Ricoh Aficio CL-4000 Type 245 Toner Yellow",
"pnbrs" : [
"888281",
"K174/G",
"K174G"
],
"model" : [
{
"id" : "1625",
"name" : "Ricoh Aficio CL4000DN"
},
],
"ctg" : [
{
"id" : "1472",
"name" : "Ricoh Type 245 Toner"
}
],
"brand" : "Ricoh"
}
我也创建了文本索引:
db.products.ensureIndex({
description: "text",
"model.name" : "text",
"ctg.name" : "text"
});
如何通过这三个文本输入组织相关的全文搜索,并在最高分项的顶部项目?
例如,用户想要通过“model.name”搜索:“XXX”,如何在搜索结果中只留下“model.name”中包含“XXX”字符串的项目,并排除那些“XXX”中的字符串“description”或“ctg.name”字段?