如何找出mongo全文搜索中匹配的列表项?

2024-06-01 05:29:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个收藏,里面有客户的名字和他们各自读过的书的清单。我在书名上加了一个全文索引

clients.ensure_index([("books.title",pymongo.TEXT)])

有些客户读一本书,有些人读100本。你知道吗

我被困在这里:

我需要确切地知道哪本书的标题与全文搜索相匹配。例如,如果我搜索“olive”,就像这样。。你知道吗

clients.find({"$text": {"$search": "olive"}})

这会将每个匹配的完整文档返回给我,但它不会告诉我匹配了哪个书名。你知道吗

我的第一个想法是遍历搜索结果并自己找到完全匹配的结果,但后来我意识到Mongo会执行各种词干分析和其他查询规范化技术。你知道吗

这意味着“橄榄”将匹配“橄榄”等

这意味着,即使我迭代全文查询的结果,并试图自己找到匹配的书名,我可能找不到它!由于查询规范化。你知道吗

那么,我怎样才能找到匹配的书名呢?你知道吗

这是Mongo的限制吗?你知道吗


Tags: textindex客户titlemongo名字规范化books