ich django bin mit 1.4, django-Heuhaufen 2.0 und Elasticsearch 0.19.1 Ich habe einen Suchindex wie folgt aus:Django Heuhaufen, um nach Entfernung von Elasticsearch Backend, kein geo_point Feldfehler
from haystack import indexes
from core.models import Project
class ProjectIndex(indexes.RealTimeSearchIndex, indexes.Indexable):
text = indexes.CharField(document=True, use_template=True)
location = indexes.LocationField(model_attr='get_location')
def get_model(self):
return Project
und Projektmodell wie folgt aus:
class Project(BaseModel):
name = models.CharField(_(u'Proje Adı'), max_length=50)
latitude = models.FloatField()
longitude = models.FloatField()
def get_location(self):
# Remember, longitude FIRST!
return Point(self.longitude, self.latitude)
Deshalb möchte ich Projektobjekte nach Entfernung bestimmten Koordinaten abzufragen von nah bis fern:
....
location = Point(project.longitude, project.latitude)
projects = SearchQuerySet().models(Project).distance('location', location).order_by('distance')
Aber ich diesen Fehler:
fehlgeschlagen Elasticsearch mit ':': abzufragen Nicht-OK-Statuscode zurückgegeben (500) u'SearchPhaseExecutionException enthält [Es konnte keine Phase auszuführen [Abfrage], Totalausfall; shardFailures {[jmUkmHkDTX-bo9DhFJdtSw] [skp] [2]: AbfragePhaseExecutionException [[skp] [2]: Abfrage [gefiltert (ConstantScore (NotDeleted (cache (QueryWrapperFilter (django_ct: core.project))))) -> cache (_type : modelresult)], aus [0], size [10], sort []: Abfrage fehlgeschlagen [Fehler beim Ausführen der Hauptabfrage]]; verschachtelt: ElasticSearchIllegalArgumentException [field [location] ist kein geo_point-Feld]; } {[jmUkmHkDTX-bo9DhFJdtSw] [skp] [4]: QueryPhaseExecutionException [[skp] [4]: Abfrage [gefiltert (ConstantScore (NotDeleted (cache (QueryWrapperFilter (django_ct: core.project))))) -> cache (_type : modelresult)], aus [0], size [10], sort []: Abfrage fehlgeschlagen [Fehler beim Ausführen der Hauptabfrage]]; verschachtelt: ElasticSearchIllegalArgumentException [field [location] ist kein geo_point-Feld]; }] '.
Was ist los?
Ich bereinigte meinen Index und erstellte Schema manuell erklärt in http://www.elasticsearch.org/guide/reference/api/admin-indices-put-mapping Dann habe ich index mit 'python manage.py update_index' und dann aktualisiert Problem ist weg. Vielen Dank! –
PUT Mapping Docs Link im obigen Kommentar jetzt 404s (2 Jahre später). Aktueller Link ist: http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/indices-put-mapping.html –