Python 包含';大多数';条款

Python 包含';大多数';条款,python,full-text-search,whoosh,Python,Full Text Search,Whoosh,我刚刚开始使用Whoosh,并注意到查询似乎对每个术语都应用了逻辑,例如and([term1,term2,…])或or([term1,term2,…]) 我的问题是,我希望包含包含搜索字符串中大多数术语的文档,但不一定包含所有术语。文档中的术语越多,它就越“相关”。例如,如果我搜索“big brown cow”,我希望结果包含只匹配术语“brown”和“cow”或“big”和“brown”的文档,但不一定两者都匹配。当然,如果文档包含所有术语,那么它们的排名应该高于其他术语 我怎样才能做到这一点

我刚刚开始使用Whoosh,并注意到查询似乎对每个术语都应用了逻辑,例如and([term1,term2,…])或or([term1,term2,…])

我的问题是,我希望包含包含搜索字符串中大多数术语的文档,但不一定包含所有术语。文档中的术语越多,它就越“相关”。例如,如果我搜索“big brown cow”,我希望结果包含只匹配术语“brown”和“cow”或“big”和“brown”的文档,但不一定两者都匹配。当然,如果文档包含所有术语,那么它们的排名应该高于其他术语


我怎样才能做到这一点?(无需单独搜索每个术语组合!)

您可以将Whoosh解析器配置为默认情况下在查询术语之间使用
,而不是
。看

然后,您可以编写一个自定义评分类,如果项目有更多的搜索词,则该类对项目的评分会更高。见和

总之,文档是开始寻找此类问题答案的好地方