我有一個包含35個字段(Char,Int,Bool,Dec,M2M,FK)的UserProfile模型。作爲搜索查看功能的一部分,其中一個字段需要全文搜索,而剩餘的34個字段將用於提供「高級搜索過濾」(使用__gte,__ lte,__ exact,__in和__startswith)。搜索查詢可以使用5-35個字段作爲搜索查看標準。django-haystack:通過索引數據庫選擇一個大的SearchIndex
我使用haystack來建立一個SearchIndex,並且目前已經添加了所有35個字段,但這似乎是無效的,因爲我繞過了django ORM(?)。
Filter Django Haystack results like QuerySet?的答案表明,我可以將SearchIndex中的單個全文搜索字段存儲起來,並將SearchQuerySet與django的QuerySet組合起來用於其餘的34個過濾字段。那麼我會在我的django模型的某些或所有這些字段上使用db_index = True?使用這種兩階段查詢合併方法能夠很好地適應數以千計的結果嗎?
由於我的UserProfile模型可能增長到300K-2M條目,我想了解如何最好地爲這個模型建立索引。作爲數據庫索引和搜索的新手,我正在尋找關於如何最優化我的數據庫的任何見解。