如何使用django-haystack配置solr

q7solyqu  于 2023-08-08  发布在  Go
关注(0)|答案(1)|浏览(71)

我正在运行docker中的solr 9.3,并尝试与django-haystack集成。我无法配置solrconfig.xmlschema.xml,也不确定将这些文件添加到何处。
我尝试使用python manage.py build_solr_schema生成schema.xml,但我还是不知道如何/在哪里放置这些文件。先谢了。

fumotvh3

fumotvh31#

要使用Haystack将Solr与Django集成,您需要确保正在运行的Solr示例具有正确的配置。由于您正在从Docker运行Solr,因此与独立安装相比,该过程可能有点不同。以下是如何设置它:
1.生成Schema
您已经使用以下命令生成了schema.xml

python manage.py build_solr_schema

字符串
1.定制Solr Docker镜像
您需要创建一个使用基础Solr镜像的自定义Docker镜像,然后添加您的自定义配置。
下面是一个例子Dockerfile

FROM solr:9.3

# Copy custom schema.xml and solrconfig.xml to the appropriate core directory
COPY schema.xml /opt/solr/server/solr/my_core/conf/
COPY solrconfig.xml /opt/solr/server/solr/my_core/conf/


my_core替换为您的核心或计划创建的核心的名称。
1.构建自定义Docker镜像
在与Dockerfile相同的目录中,运行:

docker build -t custom_solr:9.3 .


这将创建一个名为custom_solr的图像,标记为9.3
1.运行自定义Docker镜像
您现在可以运行自定义Solr映像。如果您还没有创建核心,请先创建它:

docker run --name solr_instance -d -p 8983:8983 custom_solr:9.3 solr-precreate my_core


同样,将my_core替换为内核的名称。如果已经创建了核心,您可以运行容器而不使用solr-precreate命令。
1.连接Django Haystack到Solr
在Django settings.py中,确保将Haystack指向正确的Solr URL:

HAYSTACK_CONNECTIONS = {
    'default': {
        'ENGINE': 'haystack.backends.solr_backend.SolrEngine',
        'URL': 'http://127.0.0.1:8983/solr/my_core',
    },
}


请记住将my_core替换为Solr核心的名称。
1.最终检查
设置好一切后,重新启动Django服务器,检查Haystack是否可以与Solr通信。您可能需要运行python manage.py update_index来确保数据被正确索引。
请记住,使用Docker时,容器内的配置是暂时的。如果删除容器,则会丢失这些配置。通过如上所述创建自定义Docker镜像,您可以确保始终可以使用特定配置启动Solr容器。

相关问题