sto lavorando fuori l'esempio utilizzo Pyes hereImpaginazione ElasticSearch tramite pyes. Offset ignorato
sto indicizzazione test-index con quattro documenti e l'interrogazione in seguito utilizzando diversi offset. Il parametro start non modifica l'offset per me, continuo a ottenere gli stessi risultati indipendentemente dal suo valore. Perché sta succedendo?
from pyes import *
conn = ES(["localhost:9200"])
try:
conn.delete_index('test-index')
except:
pass
conn.create_index('test-index')
mapping = {u'name': {'boost': 1.0,
'index': 'analyzed',
'store': 'yes',
'type': u'string',
"term_vector" : "with_positions_offsets"},
u'title': {'boost': 1.0,
'index': 'analyzed',
'store': 'yes',
'type': u'string',
"term_vector" : "with_positions_offsets"},
u'pos': {'store': 'yes',
'type': u'integer'},
u'uuid': {'boost': 1.0,
'index': 'not_analyzed',
'store': 'yes',
'type': u'string'}}
conn.put_mapping("test-type", {'properties':mapping}, ["test-index"])
conn.index({"name":"Joe Tester", "uuid":"11111", "position":1}, "test-index", "test-type", 1)
conn.index({"name":"Bill Baloney", "uuid":"22222", "position":2}, "test-index", "test-type", 2)
conn.index({"name":"Joe Joseph", "uuid":"33333", "position":3}, "test-index", "test-type", 3)
conn.index({"name":"Last Joe", "uuid":"44444", "position":4}, "test-index", "test-type", 4)
conn.refresh(["test-index"])
q = TermQuery("name", "joe")
r0 = conn.search(q, indices = ["test-index"], start=0, size=1)
r1 = conn.search(q, indices = ["test-index"], start=1, size=1)
r2 = conn.search(q, indices = ["test-index"], start=2, size=1)
print('0: {0}'.format(r0['hits']['hits']))
print('1: {0}'.format(r1['hits']['hits']))
print('2: {0}'.format(r2['hits']['hits']))
uscita:
$ python pagination.py
0: [{u'_score': 0.19178301, u'_type': u'test-type', u'_id': u'4', u'_source': {u'position': 4, u'name': u'Last Joe', u'uuid': u'44444'}, u'_index': u'test-index'}]
1: [{u'_score': 0.19178301, u'_type': u'test-type', u'_id': u'4', u'_source': {u'position': 4, u'name': u'Last Joe', u'uuid': u'44444'}, u'_index': u'test-index'}]
2: [{u'_score': 0.19178301, u'_type': u'test-type', u'_id': u'4', u'_source': {u'position': 4, u'name': u'Last Joe', u'uuid': u'44444'}, u'_index': u'test-index'}]
La mia versione è Pyes 0.16.0
Ho problemi con questo e ottenere l'eccezione di nessuna query registrata quando la ricerca elastica analizza la ricerca. Quale versione di pyes in cui stai usando? –
@Matt pyes versione 0.16.0 –
Il parametro 'indexes' è confuso, poiché 'indici' è usato nei casi di test dei pyes. 'indici' viene ignorato e tutti gli indici vengono cercati. Se hanno la stessa mappatura o hai solo un indice che va bene, in caso contrario, vedrai un errore. –