5

その場で日付 (昇順と降順の両方) で動的に並べ替えたいデータセットがあります。ドキュメントを読み、指示に従って、マスター インデックスのスレーブ インデックスを作成しました。ここで、上位のランキング値は、DESC 順の「日付」です。日付は正しい整数および UNIX タイムスタンプ形式です。

私の質問は、フロントエンドの Javascript Algolia API を使用して、この新しいインデックスをオンザフライでクエリするにはどうすればよいですか?

現在、私のコードは次のようになっています。

this.client = algoliasearch("xxxx", "xxxxx");
this.index = this.client.initIndex('master_index');

this.index.search( 
    this.query, {
        hitsPerPage: 10,
        page: this.pagination,
        facets: '*',
        facetFilters: facetArray
    },
    function(error, results) {
        // do stuff
}.bind(this));

私がやろうとしたことは、代わりにスレーブインデックスを使用するように initIndex を変更することであり、これは機能します...しかし、ユーザーが必要とするたびにインデックスを再初期化する必要がある場合、これは遅くて非効率的であると考えています日付けで並び替え。代わりに、クエリに挿入して日付で並べ替えることができるパラメーターはありませんか?

また、2 つ目の質問は、インデックスをスレーブ インデックスに変更しても、降順でしか並べ替えられないということです。昇順で並べ替えるにはどうすればよいですか?

何千もの行があり、すでにレコード制限を超えようとしているため、日付の昇順でソートするためだけに別のスレーブインデックスを作成したくありません。きっとここには別の方法があるはずですか?

ありがとう!

4

1 に答える 1

10

私がやろうとしたことは、代わりにスレーブインデックスを使用するように initIndex を変更することであり、これは機能します...しかし、ユーザーが必要とするたびにインデックスを再初期化する必要がある場合、これは遅くて非効率的であると考えています日付けで並び替え。代わりに、クエリに挿入して日付で並べ替えることができるパラメーターはありませんか?

ソートしたいすべてのインデックスをthisオブジェクトのさまざまなプロパティに保存する必要があります。

this.indices = {
  mostRelevant: this.client.initIndex('master_index'),
  desc: this.client.initIndex('slave_desc')
};

次に、this.indices.mostRelevant.search() または this.indices.desc.search() を使用できます。

これはパフォーマンスの問題ではありません。

インスタント検索エクスペリエンスを作成するための専用ライブラリも参照してください: https://community.algolia.com/instantsearch.js/

また、2 つ目の質問は、インデックスをスレーブ インデックスに変更しても、降順でしか並べ替えられないということです。昇順で並べ替えるにはどうすればよいですか?

何千もの行があり、すでにレコード制限を超えようとしているため、日付の昇順でソートするためだけに別のスレーブインデックスを作成したくありません。きっとここには別の方法があるはずですか?

これは、Algolia で並べ替えを行う唯一の真の方法です。これは設計によるもので、Algolia が非常に高速であり、現時点ではこれが唯一の方法です。

于 2016-02-19T07:28:09.123 に答える