2

Elastica と Elastic Search (より具体的には、Symfony2 の FOSElasticaBundle) を使用してオートコンプリート検索を作成しようとしています。

簡単なインデックスを作成し、オブジェクトを設定しました。

基本的な検索は次のように機能します。

$finder = $this->container->get('fos_elastica.finder.search.person');
$results = $finder->find('Mike');

ただし、プレフィックスクエリを機能させるのに問題があり、オンラインで例が見つかりません。これが私が試していることです:

$finder = $this->container->get('fos_elastica.finder.search.person');
$prefixQuery = new \Elastica\Query\Prefix();
$prefixQuery->setPrefix('nameFirst','Mik');
$results = $finder->find($prefixQuery);

エラーは発生しませんが、結果が返されません。

フィールドは適切に設定する必要があります...私の設定は次のようになります:

...
            types:
                person:
                    mappings:
                        nameFirst: { boost: 10 }
                        nameLast: { boost: 10 }
                        nameMiddle: { boost: 3 }
...

誰が私が間違っているのか教えてもらえますか?

また: おまけの質問: nameFirst フィールドと nameLast フィールドの両方でプレフィックスを検索する最善の方法は、NestedQuery を使用することですか、それとも addParam() を使用して nameFirst と nameLast の両方を追加することですか?

本当にありがとう-

4

0 に答える 0