Я пытаюсь использовать Sphinx Search Engine с их API Python. Установка прошла нормально. Но когда я использую их Python API, я не получаю полный набор результатов. Я получаю только идентификаторы? Но когда я использую их ./search двоичный файл ./bin, я получаю весь проиндексированный контент.Sphinx Search Engine & Python API
При использовании CPP ./search бинарная -
./search test
1. document=1, weight=1, group_id=1, date_added=Sat Sep 11 07:42:38 2010, title=2
id=1
group_id=1
group_id2=5
date_added=2010-09-11 07:42:38
title=test one
content=this is my test document number one. also checking search within phrases.
Но когда я использую Python API, я получаю -
>>> import sphinxapi
>>> client = sphinxapi.SphinxClient()
>>> client.SetServer('127.0.0.1', 9312)
>>> client.Query('test')
{'status': 0, 'matches': [{'id': 1, 'weight': 1, 'attrs': {'date_added': 1284171158, 'group_id': 1, 'title': 2}}, {'id': 2, 'weight': 1, 'attrs': {'date_added': 1284171158, 'group_id': 1, 'title': 3}}, {'id': 4, 'weight': 1, 'attrs': {'date_added': 1284171158, 'group_id': 2, 'title': 1}}], 'fields': ['content'], 'time': '0.022', 'total_found': 3, 'warning': '', 'attrs': [['group_id', 1], ['date_added', 2], ['title', 3]], 'words': [{'docs': 6, 'hits': 6, 'word': 'test'}], 'error': '', 'total': 3}
Как получить строковые поля, такие как 'название' или " content 'как часть набора результатов?
'Query' не возвращает содержимое полей полного текста каждого совпадения. Он возвращает только целочисленные атрибуты и идентификаторы документов (в порядке). Вам потребуется выполнить дополнительный SQL-запрос для извлечения данных документов. – leoluk
@leoluk благодарит за отзыв! Если то, что вы сказали, верно, тогда мне придется выполнять дополнительные SQL-запросы, чтобы фактически получить мои данные. Есть ли способ получить их от самого Сфинкса? Поскольку, очевидно, индекс имеет соответствующий текст ... –
Да, это возможно, но если бы я знал, как я сделал ответ из него – leoluk