2016-07-26 12 views
0

Ich bin neu in Symfony und ich habe ein kleines Problem. Ich habe online gesucht, konnte die Antwort auf mein Problem nicht finden. Ich schreibe Suche. Ich benutze fosElasticBundle. Die Daten, die ich in Elasticsearch gespeichert habe. FosElasticBundle stellt eine Methode "find()" bereit, um Datensätze von elasticsearch zurückzugeben. Die grundlegende Funktionalität dieser Methode ist sehr einfach -> find ("xxx") und alle Datensätze mit der Zeichenfolge xxx erhalten. Aber ich möchte etwas komplizierter machen. Ich möchte irgendwie zu den in elasticsearch gespeicherten Daten gelangen, um sie später mit meinen Parametern (geografischen Koordinaten) zu vergleichen. Jemand weiß, wie kann ich in "finden (Abfrage)" auf Daten von der ES beziehen?Abfrage mit Parametern von elasticsearch (fosElasticBundle)

Antwort

0

Dies ist, was eine geo Suche aussehen kann:

$finder = $this->container->get('fos_elastica.finder.app.blog_post'); 

$boolQuery = new \Elastica\Query\BoolQuery(); 

// (field, [top_left, bottom_right]) 
$geoQuery = new \Elastica\Query\GeoBoundingBox('geo_point', [ 
    '51.517577,-0.090372', 
    '51.509047,-0.079461', 
]); 
$boolQuery->addMust($geoQuery); 

$results = $finder->find($boolQuery); 

Quelle

Diskussion: https://www.youtube.com/watch?v=vfA9nv7Mmsw

Slides: http://foaly-nr1.github.io/slides/symfony-and-elasticsearch