我想在MongoDB中创建一个文本索引,允许用户搜索字符串元素数组的字段。
例如,我的文档看起来像
{
"stringfield": "hello",
"arrayfield": ["one", "two", "three"]
}
我希望搜索“两个”的用户找到此文档。用户无法直接访问数据库。目前,pymongo通过
执行查询our_mongo.find({'$text':{'$search': user_input }}, {'score':{'$meta':"textScore"}})
根据mongo documentation,
“文本索引可以包含其值为字符串或字符串元素数组的任何字段。”
成功搜索字符串值时,我无法获取文本索引来处理字符串元素数组。我的索引是使用以下命令创建的:
db.mydocs.createIndex(
{
'_id': 'text',
'stringfield': 'text', // works
'arrayfield': 'text', // does NOT work
},
{
weights: {
'stringfield': 10,
'arrayfield': 5
},
name: 'search'
}
);