2017-10-15 4 views
1

Couchbase 4.6.2を使用しており、フルテキスト検索機能を使用しようとしています。私たちの試みは、検索、並べ替え、改ページです。Couchbaseフルテキスト検索インデックスを構成してフルプロパティで並べ替える方法

現在のところ、デフォルトのインデックス設定を使用してインデックスを作成しています。

私たちが取り組んでいる問題は、FTS機能がレコードをソートするときに、フィールド内の1つの単語に基づいてソートすることです。ドキュメントに基づいて、フルテキスト検索の索引付けの仕組み(および索引で選択されたアナライザー)が原因であるようです。それはそれぞれの単語を取り、その単語を索引にします。ソートが実行されると、そのフィールドの最小値または最大値のいずれかが選択され、その値がソートされます。

FTSでは、単語単位でフィールドのインデックスを作成することはできますが、プロパティのコンテンツ全体に対して並べ替えを実行できますか?

+0

FYI v5.0はもっと速く、先週リリースされたばかりで、さまざまなバグの修正と改善が行われました。 – 1tylermitchell

答えて

4

ソートは、指定されたフィールドのインデックス内の用語を使用して動作します。したがって、値全体をソートするには、キーワードアナライザーを使用する必要があります。これは、フィールド値全体を単一の用語として保持するためです。そのフィールドでキーワードアナライザーを使用すると、「Video Games」のような値が単一の用語として索引付けされます。

ソート用にそのフィールドを指定すると、値全体によって順序付けられます。また、他の回答の1つに反して、ソートは索引付けされた値に作用し、格納された値を必要としません。

関連する問題は、フィールドを検索して並べ替えることが必要な場合があります。この場合、キーワード以外のアナライザを使用することがあります。両方のユースケースに対応するには、フィールドを検索のために1回、並べ替えるために1回、フィールドを2回索引付けする必要があります。これを行うには、単に異なる名前を付けるだけです。検索のための 'カテゴリ'と並べ替えのための 'category.sort'のようなもの。

0
あなたは結果のソートネスを探求するために、検索リクエストで「ソート」オプションを追加してみてくださいこと

、 例:「ソート」:[「フィールド名」]昇順と 「ソート」について:[ "-fieldname "]降順にします。 しかし、このためには、インデックス作成中に「ストアフィールド」/「ストアダイナミックフィールド」を有効にする必要があります。

関連する問題