Как индексировать url изображений в elasticsearch с помощью django
Я пытаюсь проиндексировать url изображения в elasticsearch, но продолжаю терпеть неудачу.
И я получаю photo_main = null в моих ответах на поиск.
у кого-нибудь есть идея, как это должно быть сделано?
Ниже приведен мой соответствующий код, я обобщил его, насколько это возможно.
спасибо заранее
model.py
class Recipe(models.Model):
id = models.UUIDField(
primary_key=True,
default=uuid.uuid4,
editable=False,
)
photo_main = models.ImageField(upload_to='media/', blank=True)
title = models.CharField(max_length=150)
instructions_text_list = ArrayField(models.CharField(max_length=100,),default=list, size=15,)
ingredients_text_list = ArrayField(models.CharField(max_length=100,),default=list, size=15,)
def get_absolute_url(self):
"""Return absolute URL to the Recipe Detail page."""
return reverse('recipes:detail', kwargs={"pk": self.id})
def __str__(self):
return self.title
documents.py
from django_elasticsearch_dsl import Document, fields
from django_elasticsearch_dsl.registries import registry
from elasticsearch_dsl import analyzer, tokenizer
from .models import Recipe
autocomplete_analyzer = analyzer('autocomplete_analyzer',
tokenizer=tokenizer('trigram', 'edge_ngram', min_gram=1, max_gram=20),
filter=['lowercase']
)
@registry.register_document
class RecipeDocument(Document):
title = fields.TextField(required=True, analyzer=autocomplete_analyzer)
ingredients_text_list = fields.ListField(fields.TextField())
instructions_text_list = fields.ListField(fields.TextField())
photo_main = fields.FileField()
class Index:
name = 'recipes'
settings = {
'number_of_shards': 1,
'number_of_replicas': 0,
'max_ngram_diff': 20
}
class Django:
model = Recipe
fields = [
'id',
]