6

Solr に次のドキュメントを保存しています。

  doc {
    id: string; // this is a unique string that looks like an md5 result
    job_id: string; // this also looks like an md5 result -- this is not unique
    doc_id: number; // this is a long number -- this is not unique
    text: string; // this is stored, indexed text -- this is not unique
  }

ここでやりたいことは、テキスト foo を含むドキュメント (doc_id) の数を数えることです。したがって、これが SQL の場合、次のようなものを発行したいと思います。

SELECT count(distinct doc_id)
FROM Doc
WHERE text like '%foo%';

前もって感謝します。

4

2 に答える 2

4

結果のグループ化/フィールドの折りたたみを使用して)それを機能させるには、満たすためのいくつかの条件が必要です。

  • 通常の検索で機能するには、テキスト クエリ ("%foo%") を作成する必要があります。
  • doc_id は文字列でなければなりません。そのフィールドのコピーを作成して doc_id_str と呼ぶことができます

次に、次のようなリクエストを作成できます。

/select/?q=foo&rows=0&group=true&group.field=doc_id_str&group.limit=0&group.ngroups&group.format=simple&wt=json

このクエリは私にとってはうまくいきます。どのように機能するかは、インデックスとそのサイズによって異なります。さらにガイダンスが必要な場合はお尋ねください。

于 2012-09-26T10:21:56.660 に答える
2

と同様の操作count (distinct fieldName)は現在 Solr ではできません。Jiraには、この問題に関連する問題 ( SOLR-1814およびSOLR-2242 ) があります。問題のコメントを読むと役立つかもしれません。

于 2012-09-26T06:24:29.547 に答える