Я пытаюсь обновить свой индексasticsearch с любыми изменениями в существующей базе данных.т. е. мой индекс упругого поиска должен быть синхронизирован с базой данных, мой пример model.py выглядит следующим образом
# models.py
class Car(models.Model):
name = models.CharField()
color = models.CharField()
manufacturer = models.ForeignKey('Manufacturer')
cartype =models.ForeignKey('Cartype')
class Cartype(models.Model):
type = models.CharField()
model = models.CharField()
class Manufacturer(models.Model):
name = models.CharField()
country_code = models.CharField(max_length=2)
location = models.ForeignKey('Location')
class Location(models.Model):
country = models.CharField()
class Ad(models.Model):
title = models.CharField()
description = models.TextField()
created = models.DateField(auto_now_add=True)
modified = models.DateField(auto_now=True)
url = models.TextField()
car = models.ForeignKey('Car', related_name='ads')
from elasticsearch import Elasticsearch
from elasticsearch_dsl import Search
client = Elasticsearch()
my_search = Search(using=client)
cjsta = Index(settings.ELASTICSEARCH_INDEX_NAMES[__name__])
# See Elasticsearch Indices API reference for available settings
cjsta.settings(
number_of_shards=1,
number_of_replicas=1
)
logger = logging.getLogger(__name__)
@cjsta.doc_type
class CarStageDocument(DocType):
car = fields.ObjectField(properties={
'name':fields.StringField(),
'color': fields.StringField(),
'manufacturer':fields.ObjectField(properties={
'name': fields.IntegerField(),
'country_code': fields.StringField(),
'location': fields.ObjectField(properties={
'country':fields.StringField(),
})
}),
'cartype': fields.ObjectField(properties={
'type': fields.StringField(),
'model': fields.StringField(),
}),
})
class Meta:
model = Ad
related_models = [Car,Cartype,Manufacturer,Location]
fields = ['title','description','created','modified','modified','url']
```
Как мой get_instances_from_related
будет таким, чтобы при обновлении поля type
в Cartype
мой индекс elaticsearch также получит обновления
то есть я должен получить обновленное значение type
, если я выполню _search