Результаты, возвращаемые из стога сена, используя бэкенд elasticsearch, кажутся мне ошибочными. Мой индекс поиска выглядит следующим образом:
from haystack import indexes
from .models import IosVideo
class VideoIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.CharField(document=True, use_template=True)
title = indexes.CharField(model_attr='title')
absolute_url = indexes.CharField(model_attr='get_absolute_url')
# content_auto = indexes.EdgeNgramField(model_attr='title')
description = indexes.CharField(model_attr='description')
# thumbnail = indexes.CharField(model_attr='thumbnail_url', null=True)
def get_model(self):
return IosVideo
def index_queryset(self, using=None):
return self.get_model().objects.filter(private=False)
Мой текстовый документ выглядит следующим образом:
{{ object.title }}
{{ object.text }}
{{ object.description }}
Мой запрос
SearchQuerySet().models(IosVideo).filter(content="darby")[0]
Результат, который возвращает мне, что это не работает, - это видео объект со следующими характеристиками
title: u'Cindy Daniels'
description: u'',
text: u'Cindy Daniels\n\n\n',
absolute_url: u'/videos/testimonial/cindy-daniels/'
Почему в мире запрос будет возвращать такой результат? Я очень смущен.
Моя нынешняя теория заключается в том, что она подделывает каждое подмножество char в запросе и использует это как частичное совпадение. Есть ли способ уменьшить этот толерант ближе к соответствию.
Моя информация о пипе elasticsearch == 1.2.0 Джанго-стог == 2.3.1
И номер версии elasticsearch равен 1.3.1
Кроме того, когда я нахожу локальный сервер с http://localhost:9200/haystack/_search/?q=darby&pretty
Он возвращает 10 результатов.
SearchQuerySet().filter(content="darby")
Возвращает результаты 4k.
Кто-нибудь знает, что может вызвать такой тип поведения?