2016-07-26 1 views
0

私はSymfonyで新しく、少し問題があります。私はオンラインで検索していて、私の問題に対する答えを見つけることができませんでした。私は検索を書く。私はfosElasticBundleを使用します。私はElasticsearchに保存したデータです。 FosElasticBundleは、elasticsearchからレコードを返すメソッドfind()を提供します。このメソッドの基本的な機能は非常にシンプルです - > find( "xxx")と文字列xxxを持つすべてのレコードを取得します。しかし、もっと複雑なことをやりたい elasticsearchに格納されたデータに何らかの形でアクセスして、後でそれらをパラメータ(地理座標)と比較したいと考えています。 "find(query)"でESのデータを参照するにはどうすればよいですか?elasticsearch(fosElasticBundle)のパラメータを使用したクエリ

答えて

0

これは地理検索ができるように見えるものです:

$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); 

ソース

トーク:https://www.youtube.com/watch?v=vfA9nv7Mmsw

スライド:http://foaly-nr1.github.io/slides/symfony-and-elasticsearch

関連する問題