我正在尝试对基于 django 的网站实施搜索。
在遵循教程时,我发现了这一点:
如果您使用的是 Solr 后端,那么您还有一个额外的步骤。Solr 的配置是基于 XML 的,因此您需要手动重新生成模式。您应该
run ./manage.py build_solr_schema
首先将 XML 输出放到 Solr 的 schema.xml 文件中,然后重新启动 Solr 服务器。
首先,我不知道将我的 schema.xml 放在哪里,经过一番研究后,我想我会在我的项目中创建一个文件夹来放置它:myprojectname/solr/schema.xml
. 是对的吗?
二、如何重启Solr?
更新
我下载了 Solr,将其解压缩并将生成的 schema.xml 放入其中example/solr/conf
然后我开始 solrjava -jar start.jar
但是当我尝试建立索引时:
./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.
Indexing 1 News.
Failed to add documents to Solr: [Reason: None]
<response><lst name="responseHeader"><int name="status">400</int><int name="QTime">4</int></lst><lst name="error"><str name="msg">ERROR: [doc=news.news.2] unknown field 'django_id'</str><int name="code">400</int></lst></response>
Indexing 1 entries.
Failed to add documents to Solr: [Reason: None]
<response><lst name="responseHeader"><int name="status">400</int><int name="QTime">17</int></lst><lst name="error"><str name="msg">ERROR: [doc=zinnia.entry.2] unknown field 'django_id'</str><int name="code">400</int></lst></response>
我验证了我的 schema.xml,我确实有:
<field name="django_ct" type="string" indexed="true" stored="true" multiValued="false" />
<field name="django_id" type="string" indexed="true" stored="true" multiValued="false" />
PS 我正在使用 Django 1.2 和 Haystack 1.2.7