使用docker安装elasticsearch搜索引擎
1.获取镜像
docker image pull delron/elasticsearch-ik:2.4.6-1.0
2.在虚拟机中的elasticsearch/config/elasticsearch.yml第54行,更改ip地址为0.0.0.0,端口改为9200,默认端口为9200
# network.host: 172.18.168.123 network.host: 0.0.0.0 # # Set a custom port for HTTP: # http.port: 9200
3..创建docker容器并运行
docker run -dti --network=host --name=elasticsearch -v /root/zipfiles/elasticsearch-2.4.6/config:/usr/share/elasticsearch/config delron/elasticsearch-ik:2.4.6-1.0 # 如果想要容器自动运行,在创建时的命令 docker run -dti --restart unless-stopped --name=elasticsearch -p 9200:9200 delron/elasticsearch-ik:2.4.6-1.0 # 如果容器不稳定切换这条命令创建容器 docker run -dti --name=elasticsearch -p 9200:9200 delron/elasticsearch-ik:2.4.6-1.0
4..进入项目虚拟环境中,安装相关包
# 进入项目虚拟环境 workon django # 如果安装报错,先初始化 pip3 install setuptools_scm pip3 install django-haystack pip3 install elasticsearch==2.4.1
5.在settings.py文件中加入如下配置:
INSTALLED_APPS = [ 'haystack', ] # Haystack HAYSTACK_CONNECTIONS = { 'default': { 'ENGINE': 'haystack.backends.elasticsearch_backend.ElasticsearchSearchEngine', 'URL': 'http://0.0.0.0:9200/', # 此处为elasticsearch运行的服务器ip地址,端口号默认为9200 'INDEX_NAME': 'site', # 指定elasticsearch建立的索引库的名称 }, } # 设置每页显示的数据量 HAYSTACK_SEARCH_RESULTS_PER_PAGE = 5 # 当数据库改变时,会自动更新索引 HAYSTACK_SIGNAL_PROCESSOR = 'haystack.signals.RealtimeSignalProcessor'
6.后端view
# 在apps/news/search_indexes.py中创建如下类:(名称固定为search_indexes.py) from haystack import indexes # from haystack import site from .models import News class NewsIndex(indexes.SearchIndex, indexes.Indexable): """ News索引数据模型类 可以借用 hay_stack 借助 ES 来查询 """ # 主要进行关键字查询 text = indexes.CharField(document=True, use_template=True) id = indexes.IntegerField(model_attr='id') title = indexes.CharField(model_attr='title') digest = indexes.CharField(model_attr='digest') content = indexes.CharField(model_attr='content') image_url = indexes.CharField(model_attr='image_url') def get_model(self): """返回建立索引的模型类 """ return News def index_queryset(self, using=None): """返回要建立索引的数据查询集 """ return self.get_model().objects.filter(is_delete=False)
7.创建索引模板
# 创建templates/search/indexes/news/news_text.txt文件(文件名为:模型_text.txt) # 此模板指明当将关键词通过text参数名传递时,可以通过news 的title、digest、content 来进行关键字索引查询 {{ object.title }} {{ object.digest }} {{ object.content }}
8.创建索引
# 进入项目所在目录 在虚拟机中执行如下命令,生成索引 python manage.py rebuild_index
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)