Próbuję użyć wyszukiwarki Sphinx z ich API Pythona. Instalacja poszła dobrze. Ale kiedy używam ich API Pythona, nie otrzymuję kompletnego zestawu wyników. Dostaję tylko identyfikatory? Ale kiedy używam ich binariów ./search w ./bin, otrzymuję całą zindeksowaną treść.Aparat wyszukiwania i Python API
Podczas korzystania CPP ./search binarny -
./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.
Ale kiedy używać API Pythona, otrzymuję -
>>> 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}
Jak uzyskać pola ciąg jak 'tytuł' lub ' treść "jako część zestawu wyników?
'Zapytanie' nie zwraca zawartości pól pełnotekstowych z każdego meczu. Zwraca tylko liczby całkowite i identyfikatory dokumentów (w kolejności). Będziesz musiał wykonać dodatkowe zapytanie SQL, aby pobrać dane z dokumentów. – leoluk
@leoluk dzięki za odpowiedź! Jeśli to, co powiedziałeś, jest prawdą, musiałbym wykonać dodatkowe zapytania SQL, aby uzyskać moje dane. Czy istnieje sposób, w jaki mogę je zdobyć od samego Sphinx? Ponieważ oczywiście jest to indeks ma odpowiedni tekst ... –
Tak, jest to możliwe, ale gdybym wiedział, w jaki sposób udzieliłem na nie odpowiedzi – leoluk