我刚开始使用Whoosh并注意到查询似乎有逻辑应用于每个术语,如AND([term1,term2,...])或OR([term1,term2,...])。
我的问题是我希望在我的搜索字符串中包含大多数条款的文档,但不一定全部。文档越多,它应该越“相关”。例如,如果我搜索“大棕牛”,我希望结果包括仅匹配术语“棕色”和“牛”,或“大”和“棕色”但不一定两者都匹配的文档。当然,如果文件包含所有条款,那么它们的排名应该高于其他条款。
我怎样才能做到这一点? (无需单独搜索每个单独的术语组合!)
答案 0 :(得分:0)
您可以将Whoosh解析器配置为在查询字词之间默认使用OR
而不是AND
。请参阅http://packages.python.org/Whoosh/parsing.html#common-customizations。
然后,您可以编写一个自定义评分类,如果他们拥有更多搜索字词,则会对项目进行评分。请参阅http://packages.python.org/Whoosh/searching.html#scoring-and-sorting和http://packages.python.org/Whoosh/api/scoring.html#module-whoosh.scoring。
总之,文档是开始寻找这些问题答案的好地方。