2011-10-16 20 views
1

我剛剛開始使用Whoosh並注意到查詢似乎對每個術語應用了邏輯,例如AND([term1,term2,...])或OR([ term1,term2,...])。爲包含'最多'條款的文檔創建的搜索引擎組合

我的問題是,我想包括我的搜索字符串,但不一定全部的文檔。文檔越多,它應該越「相關」。例如,如果我搜索「大褐牛」,我希望結果包含僅匹配「棕色」和「牛」,或「大」和「棕色」但不一定是兩者的文檔。當然,如果文件有全部條款,那麼它們的排名應該高於其他條款。

我該如何做到這一點? (不必爲每個單獨的術語組合進行單獨搜索!)

回答

0

您可以將Whoosh分析器配置爲在查詢術語之間默認使用OR而不是AND。見http://packages.python.org/Whoosh/parsing.html#common-customizations

然後,您可以編寫一個自定義評分課程,如果他們擁有更多搜索術語,則可以對評分項目進行評分。請參閱http://packages.python.org/Whoosh/searching.html#scoring-and-sortinghttp://packages.python.org/Whoosh/api/scoring.html#module-whoosh.scoring

總之,文檔是一個很好的開始尋找這些問題的答案的地方。