【发布时间】:2021-01-18 05:42:09
【问题描述】:
我正在使用 MongoDB Atlas 的全文搜索功能帮助我查找类似文档,按分数排序。
我将我的收藏索引设置为“动态”。
我正在寻找文本字段中的相似之处,例如“名称”或“描述”,但我也想查看另一个字段“主题”,它存储主题的整数值 (id)。
示例:
假设我有一个参考文件如下:
{
name: "test",
description: "It's a glorious day!",
thematic: [9, 3, 2, 33]
}
我希望我的搜索与主题字段中的这些int 匹配,并将它们的权重包含在分数计算中。
例如,如果我将我的参考文档与:
{
name: "test2",
description: "It's a glorious night!",
thematic: [9, 3, 6, 22]
}
我想提高分数,因为主题字段与参考文档共享 9 和 3 值。
问题:
我应该使用什么search operator 来实现这一目标?我可以使用text 运算符输入字符串数组作为查询,但我不知道如何处理整数。
我应该采用另一种方法吗?喜欢将数组拆分为多个 compound.should.term 查询进行比较?
编辑:
如果数值或日期值是数组的一部分,则 Atlas Search 无法索引它们。
在考虑更改对象的整个数据结构之前,我想确保没有变通方法。
例如,可以用custom analyzers 完成吗?
【问题讨论】:
标签: mongodb search full-text-search mongodb-atlas mongodb-atlas-search