如何配置search_indexes.py在Django的草垛指數dynamicFields。我使用SOLR作爲乾草堆的搜索引擎。dynamicField在Django的草垛SOLR配置
1
A
回答
0
至於我可以在Django的草垛1.2的源代碼看看。*你不能做到這一點。您可以編寫自己的模式,而不是使用管理命令生成它並使用它。
1
如果您正在使用草堆的build_solr_schema
管理命令來創建schema.xml中,請注意,它會自動包括流行的字段類型不同dynamicFields。例如,check out the schema template for Haystack v2.1。 (這看起來像它一直在那裏,因爲草堆V1)
這可以讓你創建你的搜索索引的準備方法動態命名字段。例如,如果您編入索引,可能有一個ID字符串爲您不斷變化的組合作夥伴的筆記,你可以這樣做:
def prepare(self, obj):
self.prepared_data = super(NoteIndex, self).prepare(obj)
for (partner_name, partner_id) in get_partners():
self.prepared_data['%s_s' % partner_name] = partner_id
return self.prepared_data
這裏的關鍵是,字段名稱與「_s」結束,它根據模式是字符串類型的動態名稱。
不幸的是,這些動態的合作伙伴領域沒有明確你的SearchIndex類的頂部定義。你可能想在評論中提到這一點。
0
由於@nofinator說,你可以在SearchIndex
類.prepare
方法由SOLR Schema.xml
前綴concatinating字段名做到這一點。
默認情況下草垛(當前版本。是2.1.1)附帶像*_s
一些默認DynamicField。但是如果你願意,你可以製作你自己的DynamicField。
在我的項目生病讓attr_*
領域,其做工精細。
所有你需要做的,就是在Schema.xml
加入這一領域,具有相同的語法,您可以manualy或壓倒一切的非標準草堆做build_solr_schema
管理命令。(順便說一句,它的使用非標準的Django渲染模板FNC。所以它很容易。
相關問題
- 1. Solr的設置與草垛
- 2. Django的草垛 - MissingDependency
- 3. Django草垛過濾
- 4. IndexMissingException - Django的草垛與elasticsearch
- 5. 安裝Django的草垛
- 6. Django的草垛與嗖
- 7. Django草垛與Elasticsearch後端
- 8. 問題增加了使用Django的草垛Solr的指數
- 9. MapperParsingException在Django的草垛與elasticsearch
- 10. Django的草垛,優先在搜索
- 11. Django草垛報告`Errno 111:Connection Refused`連接到Solr
- 12. 如果在草垛
- 13. 草垛的SearchQuerySet(),過濾沒有做任何事情(嗖2.4.1,Django的草垛1.2.7)
- 14. Django的草垛問題會議
- 15. Django的草垛和嗖:排序
- 16. Django的草垛 - 無模塊命名search_sites
- 17. Django的草垛搜索點和短處
- 18. Django的草垛查詢不交
- 19. Django的草垛elasticsearch預取錯誤
- 20. Django草垛返回相關的insances
- 21. 從草垛文件
- 22. 術語「草垛」在PHP
- 23. mongoengine文檔的草垛
- 24. 使用草垛搜索特殊字符SearchQuerySet和Solr
- 25. 的Django /草堆/ Solr的簡單配置 - 部分場匹配問題
- 26. 篩選草垛結果
- 27. 拼寫檢查與草垛
- 28. 草垛more_like_this全部返回
- 29. 如何地址過濾相關模型在Django草垛
- 30. Django的草垛不會指數我的數據