我正在尝试跟随干草堆教程。运行manage.py rebuild index
时遇到错误我收到以下错误:
WARNING: This will irreparably remove EVERYTHING from your search index.
Your choices after this are to restore from backups or rebuild via the `rebuild_index` command.
Are you sure you wish to continue? [y/N] y
Removing all documents from your index because you said so.
All documents removed.
/Users/heri0n/python_env/lib/python2.7/site-packages/django/db/models/fields/__init__.py:808: RuntimeWarning: DateTimeField received a naive datetime (2013-04-07 16:14:15.481145) while time zone support is active.
RuntimeWarning)
Indexing 1 notes.
Failed to add documents to Solr: [Reason: None]
<response><lst name="responseHeader"><int name="status">400</int><int name="QTime">6</int></lst><lst name="error"><str name="msg">ERROR: [doc=haystacktester.note.3] unknown field 'django_id'</str><int name="code">400</int></lst></response>
我确实运行了manage.py build_solr_schema&gt; 〜/ solr的-4.2.1 /示例/ solr的/ CONF / schema.xml中
我必须手动创建conf目录,因为它不存在。我注意到本教程使用的是Solr 3,而我正在使用。斗篷的位置是否也改变了?
答案 0 :(得分:10)
问题在于Solr(haystack文档使用v3.5.0,这里你可能正在使用最新版本)找不到配置文件。这3个步骤对我有用
将架构放在solr-x.y.z / example / solr / collection1 / conf / schema.xml
在架构中将stopwords_en.txt更改为lang / stopwords_en.txt
将版本字段(如下所述)添加到字段部分
中的架构中<field name="_version_" type="long" indexed="true" stored="true" multiValued="false"/>
有关详细信息,请查看GitHub
中的相同讨论答案 1 :(得分:4)
这更像是评论,但由于我缺乏积分,我无法发表评论......
有没有人想出一个解决方案呢?我有完全相同的问题。该字段正在schema.xml
中创建:
<field name="django_id" type="string" indexed="true" stored="true" multiValued="false"/>
我重启了Solr(多次),我100%肯定我的schema.xml代码是正确的。到底发生了什么事?
编辑:我切换到Elasticsearch并没有任何问题。但是,我相信其他人会在这个问题上找到帮助。答案 2 :(得分:1)
我不得不克隆干草堆源代码并做一些如下的黑客攻击:
在/haystack/management/commands/build_solr_schema.py中,我在DJANGO_ID
func中评论了build_context()
。
然后在/haystack/templates/search_configuration/solr.xml
中,我将{{ DJANGO_ID }}
替换为"django_id"
,一切正常。
我认为生成{{DJANGO_ID}}
时"django_id"
并未被schema.xml
替换。