У меня есть простой индекс повторного поиска, который я создаю в Python с помощью:
>>> from redisearch import Client, TextField
>>> c = Client('common_words')
>>> c.create_index((TextField('body'),))
b'OK'
>>> c.add_document('ibiza', body='kevin paul dad')
b'OK'
>>> c.add_document('england', body='kevin dad')
b'OK'
>>> c.add_document('bank', body='kevin robber')
b'OK'
Затем я могу найти определенное слово, которое отлично работает:
>>> c.search('kevin')
Result{3 total, docs:
[Document {'id': 'bank', 'payload': None, 'body': 'kevin robber'},
Document {'id': 'england', 'payload': None, 'body': 'kevin dad'},
Document {'id': 'ibiza', 'payload': None, 'body': 'kevin paul dad'}
]}
Есть ли быстрыйспособ вытащить список слов вместе с появлением?Я стремлюсь к такому результату, как:
{ Result{4 total, counts:
[ Word { 'word': 'kevin', 'count': 3},
Word { 'word': 'dad', 'count': 2 },
Word { 'word': 'paul', 'count': 1 },
Word { 'word': 'robber', 'count': 1 } ] }
Я смотрел на этот пример того, как подсчитать количество слов, используя nltk
и zincrby
, но подумал:уже был способ получить это изначально от redisearch
.