我有一個solr搜索引擎設置了多個字段,我希望能夠搜索所有字段。haystack solr搜索全部字段
我可以做一個.filter(content='string')
但這只是搜索任何領域都在document=True
編輯 此外,一些非document=True
領域有不同的過濾器/應用,以便即時猜測這會不會增加工作tokenisers他們到一個單一的領域...
我有一個solr搜索引擎設置了多個字段,我希望能夠搜索所有字段。haystack solr搜索全部字段
我可以做一個.filter(content='string')
但這只是搜索任何領域都在document=True
編輯 此外,一些非document=True
領域有不同的過濾器/應用,以便即時猜測這會不會增加工作tokenisers他們到一個單一的領域...
@neolaser:我想你可以通過使用DisMax搜索來實現。它允許通過多個字段進行搜索併爲每個字段指定增強值。有關詳細信息:
您可以搜索所有領域購買,包括他們全部到您的filtering query參數或命名它們在查詢字符串(例如,如果您需要搜索「(關鍵字」搜索「((( field_1:keyword)OR(field_2:keyword)OR(field_3:keyword))「instea d)。
但是,通常最好有一個專用字段連接您需要搜索和搜索該單個字段的所有其他字段。您可以在架構中設置copyfield,以便在文檔編入索引時自動生成該內容。
也許你可以用'use_template'和一個顯示所有字段的模板創建第二個字段。
我從來沒有試過這樣做,但這聽起來是一個很好的方法來做到這一點。因爲OP評論
編輯:
然後我最好的選擇是eaither sublass SearchQueryset添加一個方法或創建一個函數,將循環在你的SearchIndex各個領域,並做一些事情,如:
qs = SearchQuerySet().filter(content=query)
for field in fieldlist:
qs = qs.filter_or(**{'field':query})
我不知道這是否可行,但值得一試。
謝謝你的回答,我已經給出了正確的答案,因爲它是「最近的「,但是我最終使用了dismax!所以謝謝你的回答,我確定這對其他人也有用! – neolaser 2011-09-13 23:20:27