我正在运行docker中的solr 9.3,并尝试与django-haystack集成。我无法配置solrconfig.xml和schema.xml,也不确定将这些文件添加到何处。我尝试使用python manage.py build_solr_schema生成schema.xml,但我还是不知道如何/在哪里放置这些文件。先谢了。
solrconfig.xml
schema.xml
python manage.py build_solr_schema
fumotvh31#
要使用Haystack将Solr与Django集成,您需要确保正在运行的Solr示例具有正确的配置。由于您正在从Docker运行Solr,因此与独立安装相比,该过程可能有点不同。以下是如何设置它:1.生成Schema:您已经使用以下命令生成了schema.xml:
字符串1.定制Solr Docker镜像:您需要创建一个使用基础Solr镜像的自定义Docker镜像,然后添加您的自定义配置。下面是一个例子Dockerfile:
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相同的目录中,运行:
my_core
docker build -t custom_solr:9.3 .
型这将创建一个名为custom_solr的图像,标记为9.3。1.运行自定义Docker镜像:您现在可以运行自定义Solr映像。如果您还没有创建核心,请先创建它:
custom_solr
9.3
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:
solr-precreate
settings.py
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容器。
python manage.py update_index
1条答案
按热度按时间fumotvh31#
要使用Haystack将Solr与Django集成,您需要确保正在运行的Solr示例具有正确的配置。由于您正在从Docker运行Solr,因此与独立安装相比,该过程可能有点不同。以下是如何设置它:
1.生成Schema:
您已经使用以下命令生成了
schema.xml
:字符串
1.定制Solr Docker镜像:
您需要创建一个使用基础Solr镜像的自定义Docker镜像,然后添加您的自定义配置。
下面是一个例子
Dockerfile
:型
将
my_core
替换为您的核心或计划创建的核心的名称。1.构建自定义Docker镜像:
在与
Dockerfile
相同的目录中,运行:型
这将创建一个名为
custom_solr
的图像,标记为9.3
。1.运行自定义Docker镜像:
您现在可以运行自定义Solr映像。如果您还没有创建核心,请先创建它:
型
同样,将
my_core
替换为内核的名称。如果已经创建了核心,您可以运行容器而不使用solr-precreate
命令。1.连接Django Haystack到Solr:
在Django
settings.py
中,确保将Haystack指向正确的Solr URL:型
请记住将
my_core
替换为Solr核心的名称。1.最终检查:
设置好一切后,重新启动Django服务器,检查Haystack是否可以与Solr通信。您可能需要运行
python manage.py update_index
来确保数据被正确索引。请记住,使用Docker时,容器内的配置是暂时的。如果删除容器,则会丢失这些配置。通过如上所述创建自定义Docker镜像,您可以确保始终可以使用特定配置启动Solr容器。