У меня есть два вида документов:
class Article(Document):
content = Text(analyzer='snowball', fields={'raw': Keyword()})
class Index:
name = 'blog'
def save(self, **kwargs):
return super(Article, self).save(**kwargs)
class Thing(Document):
content = Text(analyzer='snowball', fields={'raw': Keyword()})
class Index:
name = 'blog'
def save(self, **kwargs):
return super(Thing, self).save()
Я сделал две простые вставки, например так:
thing = Thing(meta={'id': 122}, content='a thing')
article = Article(meta={'id': 154}, content='an article ')
article.save()
thing.save()
Теперь я хочу получить документ типа Thing
, чье содержание нечетко похоже на строку «статья».Вот код для этого.
ubq = Thing.search(using=client).query("fuzzy", content="article")
Странная вещь, когда я перебираю результаты по ubq.execute()
, я получаю объект типа Article
(документ, который я вставил ранее).
Я ожидал, что я вообще ничего не должен получить.Почему Thing().search()
возвращает объект типа Article
?