1

用語で検索するときにフィールドを除外するように Elasticsearch に指示するにはどうすればよいですか?

ユーザーのインデックス (名前、電子メール、資格、経験、オフィスなど) がありますが、資格によってユーザーを検索できるのは特定の人だけです。私の現在の PHP Lucene 実装では、そのデータがある場合とない場合の 2 つの個別のインデックスがあります。1 つのユーザー インデックスだけでこれを行う方法はありますか? ある種のフィルター[1] [2]を適用する必要があると思いますが、フィールドを完全に無視できるフィルターはありません。

Elastica (PHP クライアント)でこれを行う具体的な方法があれば、それはさらに役立ちますが、ネイティブ ES も同様に役立ちます。

インデックスに 2 人のユーザーがいるとします

ケビン・スミス マフィン作りの資格を取得

マーク スミス バイク ジャンプの認定を受けています。

通常のユーザーがオートバイを検索した場合は何も返されませんが、スミスを検索した場合は両方が返されます。

認証フィールドを検索できるユーザーは、motorcycle を検索すると Mark を返し、Smith を検索すると両方を返します。

4

1 に答える 1