如何配置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的草垛不会指数我的数据