2016-03-30 14 views
0

Ich benutze Elasticsearch 2.2.1 für die Suche nach Dokumenten, die sich auf einen bestimmten geografischen Standort beziehen (innerhalb einer Bouding-Box). Ich möchte einen Percolator erstellen, mit dem ich überprüfen kann, ob sich ein neues Dokument auf eine vorhandene Abfrage bezieht.Wie verwende ich Punktnotation im Geo Percolator

Dies funktioniert gut, wenn ich den Perkolator in den Index enthält die Dokumente setzen, sondern wegen der Frage Erwähnung in diesem document und die Abhilfe erwähnt here ich die Perkolat-Abfragen in einem dedizierten percolator Index setzen müssen.

Wenn ich versuche, einen Perkolator in diesen Index zu setzen:

PUT /mypercindex/.percolator/1 
    {"query": {"filtered": {"filter": 
    {"bool": 
     {"should": 
      [ 
       {"geo_bounding_box": 
        {"location.coordinates": 
         {"bottom_right": 
          {"lat":50.0,"lon":8.0} 
         ,"top_left": 
          {"lat":54.0,"lon":3.0} 
         } 
        } 
       } 
      ] 
     } 
    } 
}}} 

Ich erhalte eine Fehlermeldung sagen, dass:

Strenge Feldauflösung und keine Feldzuordnung kann für das Feld zu finden mit name [location.coordinates]

in der percolator Dokumentation ist mentioned, dass im Falle eines dedizierten percolator Index, Sie n EED:

sicher, dass die Zuordnungen aus dem normalen Index sind auch auf dem Perkolat Index

Das ist mein Problem verursachen kann, aber ich kann die Dokumentation über nicht finden, wie die Zuordnung von einem machen Index in der anderen verfügbar. Ich habe versucht, den dedizierten Percolator-Index mit der gleichen Zuordnung wie meinen Dokumentenindex hinzuzufügen, aber wenn ich das tue, bekomme ich immer noch dieselbe Fehlermeldung.

Die Abbildung meines Dokumentenindex ähnelt dies:

{"my_mapping": { 
    "dynamic":"strict", 
    "properties":{ 
    "body":{ 
     "properties":{ 
      "author":{ 
       "type":"string", 
       "index":"not_analyzed" 
      }, 
      "hashtags":{ 
       "type":"string", 
       "index":"not_analyzed" 
      }, 
      "language":{ 
       "type":"string", 
       "index":"not_analyzed" 
      } 
      ,"text":{ 
       "type":"string", 
       "analyzer":"stopwords" 
      }, 
      "title":{ 
       "type":"string", 
       "analyzer":"stopwords" 
      } 
     } 
    }, 
    "location":{ 
     "properties":{ 
      "coordinates":{ 
       "type":"geo_point" 
      }, 
      "names":{ 
       "type":"string", 
       "analyzer":"standard" 
      } 
     } 
    } 
    } 
}} 

Jede Hilfe wäre sehr dankbar!

Antwort