sto utilizzando l'API di ricerca di Google App Engine (https://developers.google.com/appengine/docs/python/search/). Ho indicizzato tutte le entità e la ricerca funziona correttamente. ma solo se cerco le corrispondenze esatte altrimenti restituisce 0 risultati. Per esempio:Google App Engine (python): API di ricerca: ricerca stringa
from google.appengine.api import search
_INDEX_NAME = 'searchall'
query_string ="United Kingdom"
query = search.Query(query_string=query_string)
index = search.Index(name=_INDEX_NAME)
print index.search(query)
se corro il seguente script faccio ottenere risultati come segue:
search.SearchResults(results='[search.ScoredDocument(doc_id='c475fd24-34ba-42bd-a3b5-d9a48d880012', fields='[search.TextField(name='name', value='United Kingdom')]', language='en', order_id='45395666'), search.ScoredDocument(doc_id='5fa757d1-05bf-4012-93ff-79dd4b77a878', fields='[search.TextField(name='name', value='United Kingdom')]', language='en', order_id='45395201')]', number_found='2')
ma se cambio il query_string
a "United Kin"
o "United"
è restituire 0 risultati come segue:
search.SearchResults(number_found='0')
Desidero utilizzare questa API per la ricerca normale e AutoSuggest. Quale sarebbe il modo migliore per raggiungere questo obiettivo?
Grazie per la tua risposta nick, ma ho un datastore di grandi dimensioni, se lo faccio per ogni entità nel datastore non influirebbe la dimensione del datastore? Mi piacciono 4 diversi modelli ricercabili e ognuno di loro ha più di 100.000 record in media. – Amyth
Sì, dovresti memorizzare queste parole chiave generate automaticamente insieme al resto dei tuoi dati. –