django - 使用 django-elasticsearch-dsl 重建索引时出错
问题描述
我正在尝试连接到本地弹性搜索引擎中的现有索引。我正在使用 django-elasticsearch-dsl 包。我按照本教程来做到这一点。https://github.com/sabricot/django-elasticsearch-dsl
请注意,我已经使用 mysql 数据库开发了我的 django 应用程序[网站]。我在弹性搜索中索引了一些非结构化文本数据。我想为查询数据 frpm elasticsearch 的用户开发这个“高级搜索”HTML 页面。
我几乎跟踪了所有内容
python manage.py search_index --rebuild
,但是一旦我执行它,它就会问你是什么sure you want to delete the 'website_data_discovery' indexes? [n/Y]:
时候我说它n
会被中止。当我说它Y
给出了一个冗长的错误说django.db.utils.ProgrammingError: Table 'crdc.website_data_discovery' doesn't exist
这是我的文件结构。
crdc
website
->__pycache__
-> media
->migrations
->static
->templates
->__init__.py
->admin.py
->apps.py
->documnets.py
->forms.py
->models.py
->tests.py
->urls.py
->views.py
manage.py
这是我的 settings.py/crdc。
###more codes here
INSTALLED_APPS = [
'website.apps.WebsiteConfig',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django_elasticsearch_dsl',
]
ELASTICSEARCH_DSL={
'default': {
'hosts': 'localhost:9200'
},
}
###more codes here
这是documents.py/website
from django_elasticsearch_dsl import DocType, Index
from .models import Data_Discovery
data_discovery = Index('website_data_discovery')
data_discovery.settings( number_of_shards = 5, number_of_replicas = 1,)
@data_discovery.doc_type
class Data_DiscoveryDocument(DocType):
class Meta:
model = Data_Discovery
fields = ['extracted_text', 'source_type']
这是models.py/website
from django.db import models
class WebsiteRepository(models.Model):
##### mysql model
class Documents(models.Model):
#### mysql model
class Data_Deposite(models.Model):
#### mysql model
class Data_Discovery(models.Model):
## Elasticsearch model
任何帮助将不胜感激。谢谢
解决方案
我知道这已经晚了。但是,我想我应该回答我自己的问题,这样任何人都面临同样的问题,可以弄清楚。
我为弹性搜索组件创建了另一个应用程序。是的,我在同一个项目下创建了另一个应用程序。我遵循了本教程https://pypi.org/project/django-elasticsearch-dsl/ 然后我从网站 App 调用了 views.py 中的 Elasticsearch 视图函数。它现在完美运行。
我不是 Django 或 Elastic Search 方面的专家。所以,我无法解释为什么它不像以前的尝试那样工作。我希望这对遇到这种情况的人有所帮助。
推荐阅读
- excel - Excel中的嵌套vlookup?- 获取数组中的特定数字
- python - 如何在时间序列中使用 mean() 并将其放到列中?
- r - R中的子集代码之间存在不同的结果
- javascript - Javascript数组过滤和提取
- azure - 使用变量组和模板的 Azure Pipelines 变量的意外行为
- django - 什么是使您的网站更快的最佳方法,使其加载更快并在 django 中消耗更少的数据
- mysql - 使用 slick 在 mysql 中创建模式时出错
- java - 错误消息:'Offer with PublisherId: 'bitnami' and OfferId: 'wordpress' not found
- c# - C# - 任务始终处于“WaitingForActivation”状态
- bash - 如果在线部分重复,请删除行