[英]Improving django search
我有以下搜索:
titles = Title.objects.filter(title__icontains=search)
如果是要查找的搜索:
Thomas: Splish, Splash, Splosh
我可以輸入“ Thomas”或“ Thomas:Splish,Splash,Splosh”之類的東西,它將起作用。
但是,如果輸入"Thomas Splash"
,它將無法正常工作。 我將如何改進搜索以執行類似的操作(還請注意,如果我們對單詞進行拆分,則應忽略逗號和其他非字母數字-例如,拆分后的單詞不應為“ Thomas:”,“ Splish, ”,而是“ Thomas”,“ Splish”等。
這種搜索開始突破django和ORM的界限。 一旦達到這種復雜程度,我總是切換到完全為搜索而構建的系統。 我挖lucene ,所以我通常去ElasticSearch或Solr
請記住,全文搜索本身就是一個子系統,但實際上可以為您的網站增加很多價值。
由於Django模型正在使用數據庫查詢,因此您無能為力。
您可以按非字母數字字符和包含所有單詞的搜索對象來划分搜索范圍,但這將既不明智也不高效。
如果您想要一些真正聰明的東西,也許您應該查看干草堆:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.