Elasticsearchとは異なるものを選択してください

アディットサクセナ

私は少数の著者に属するドキュメントのコレクションを持っています:

[
  { id: 1, author_id: 'mark', content: [...] },
  { id: 2, author_id: 'pierre', content: [...] },
  { id: 3, author_id: 'pierre', content: [...] },
  { id: 4, author_id: 'mark', content: [...] },
  { id: 5, author_id: 'william', content: [...] },
  ...
]

著者のIDに基づいて、最も一致するドキュメントの個別の選択を取得してページ付けしたいと思います。

[
  { id: 1, author_id: 'mark', content: [...], _score: 100 },
  { id: 3, author_id: 'pierre', content: [...], _score: 90 },
  { id: 5, author_id: 'william', content: [...], _score: 80 },
  ...
]

これが私が現在行っていることです(擬似コード):

unique_docs = res.results.to_a.uniq{ |doc| doc.author_id }

問題はページ付けにあります:20の「異なる」ドキュメントを選択する方法は?

一部の人々は用語ファセットを指していますが、私は実際にはタグクラウドを行っていません:

ありがとう、
Adit

アディットサクセナ

現在、ElasticSearchはgroup_byに相当するものを提供していないため、手動で実行しようとしています。
ESコミュニティがこの問題(おそらくプラグイン)の直接的な解決策に取り組んでいる間、これが私のニーズに合った基本的な試みです。

仮定。

  1. 関連するコンテンツを探しています

  2. 最初の300のドキュメントが関連していると想定したので、これらの多くまたは一部が同じ少数の著者からのものであるかどうかに関係なく、私の研究をこの選択に限定することを検討します。

  3. 私のニーズのために、私は「本当に」完全なページ付けを必要としませんでした、それはajaxを通して更新された「もっと見る」ボタンで十分でした。

欠点


  1. 毎回300のドキュメントを取得するため、結果は正確ではありません。一意のドキュメントがいくつ出てくるかわかりません(同じ作成者からの300のドキュメントである可能性があります)。作成者あたりのドキュメントの平均数に適合するかどうかを理解し、おそらく制限を検討する必要があります。

  2. 2つのクエリを実行する必要があります(リモート通話のコストを待機しています):

    • 最初のクエリでは、idとauthor_idのフィールドだけで300の関連ドキュメントを要求します
    • 2番目のクエリでページ付けされたIDの完全なドキュメントを取得します

これがいくつかのルビー擬似コードです:https//gist.github.com/saxxi/6495116

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

要件の異なる2つの値を選択してください

分類Dev

Accurevのファイルごとに異なるバージョンを選択してください

分類Dev

Chromeで動作しない必要なものを選択してください

分類Dev

DDRRAMをCLが異なるものと交換してください

分類Dev

少なくとも1つの数字を含むn-gramを選択してください

分類Dev

少なくとも1つのNULL値を持つ行を選択してください

分類Dev

近くのものがある町を選択してください

分類Dev

グループごとに列ごとに異なる項目を選択してください

分類Dev

少なくとも1つのチェックボックスが選択されていることを確認してくださいphp

分類Dev

複数選択、Jquery:少なくとも1つのオプションを選択する必要がある場合は、複数選択を確認してください

分類Dev

明確で最新のものを選択してください

分類Dev

少なくとも1回は条件を満たすすべてのグループを選択してください

分類Dev

3K番号の範囲で常に異なる番号を選択してください

分類Dev

IDが「ランダム」であるものを選択してください

分類Dev

分数ではなく正の整数を選択してください

分類Dev

バッファAPIエラーへの更新の投稿-「投稿するアカウントを少なくとも1つ選択してください」

分類Dev

兄弟のいない子供を選択してください

分類Dev

変数にも設定されているものを選択してください

分類Dev

nullではないデータのみを選択してください

分類Dev

djangoフォームでajaxを使用しているときに、「有効な選択肢を選択してください。これは利用可能な選択肢の1つではありません。」というエラーが表示されます。

分類Dev

最初の有効な式を選択してください

分類Dev

パターンに一致しないものをすべて選択してください

分類Dev

有効な選択肢を選択してくださいModelChoiceField

分類Dev

特定の番号を持つものをすべて選択してください

分類Dev

DjangoModelFormのエラー。有効な選択肢を選択してください。その選択は有効な選択の1つではありません

分類Dev

Django管理者によると:有効な選択肢を選択してください。その選択は利用可能な選択肢の1つではありません

分類Dev

列ごとに重複しないものを選択してください。フィールドが対応していません

分類Dev

有効な選択肢を選択してください。その選択肢は、利用可能な選択肢の1つではありません。

分類Dev

Django-有効な選択肢を選択してください。その選択は利用可能な選択肢の1つではありません

Related 関連記事

  1. 1

    要件の異なる2つの値を選択してください

  2. 2

    Accurevのファイルごとに異なるバージョンを選択してください

  3. 3

    Chromeで動作しない必要なものを選択してください

  4. 4

    DDRRAMをCLが異なるものと交換してください

  5. 5

    少なくとも1つの数字を含むn-gramを選択してください

  6. 6

    少なくとも1つのNULL値を持つ行を選択してください

  7. 7

    近くのものがある町を選択してください

  8. 8

    グループごとに列ごとに異なる項目を選択してください

  9. 9

    少なくとも1つのチェックボックスが選択されていることを確認してくださいphp

  10. 10

    複数選択、Jquery:少なくとも1つのオプションを選択する必要がある場合は、複数選択を確認してください

  11. 11

    明確で最新のものを選択してください

  12. 12

    少なくとも1回は条件を満たすすべてのグループを選択してください

  13. 13

    3K番号の範囲で常に異なる番号を選択してください

  14. 14

    IDが「ランダム」であるものを選択してください

  15. 15

    分数ではなく正の整数を選択してください

  16. 16

    バッファAPIエラーへの更新の投稿-「投稿するアカウントを少なくとも1つ選択してください」

  17. 17

    兄弟のいない子供を選択してください

  18. 18

    変数にも設定されているものを選択してください

  19. 19

    nullではないデータのみを選択してください

  20. 20

    djangoフォームでajaxを使用しているときに、「有効な選択肢を選択してください。これは利用可能な選択肢の1つではありません。」というエラーが表示されます。

  21. 21

    最初の有効な式を選択してください

  22. 22

    パターンに一致しないものをすべて選択してください

  23. 23

    有効な選択肢を選択してくださいModelChoiceField

  24. 24

    特定の番号を持つものをすべて選択してください

  25. 25

    DjangoModelFormのエラー。有効な選択肢を選択してください。その選択は有効な選択の1つではありません

  26. 26

    Django管理者によると:有効な選択肢を選択してください。その選択は利用可能な選択肢の1つではありません

  27. 27

    列ごとに重複しないものを選択してください。フィールドが対応していません

  28. 28

    有効な選択肢を選択してください。その選択肢は、利用可能な選択肢の1つではありません。

  29. 29

    Django-有効な選択肢を選択してください。その選択は利用可能な選択肢の1つではありません

ホットタグ

アーカイブ