2016-10-04 4 views
0

私はtags solkの100kレコードを持っています。それは簡単な構造を持っています。ノードnode:SOLR - テキストと一致するタグ

{ 
    "id": "57301", 
    "name": "Roof repair", 
} 

このタスクは、 - solr検索エンジンを使用して入力テキストのタグリストを自動的にバインドします。今私たちのアルゴリズムはです。

  1. まず、tagsコレクションに全文をクエリとして送信します。私たちは "名前"フィールドで全文を検索しています。我々はタグの大きなリストを受け取ります。
  2. 入力テキスト(IDがわかっている)を含む文書を含む別のコレクションにサイクル(ループタグ、ステップ1で受信)で要求を送信します。例クエリ id:38373 AND _text_:"Roof repair"このクエリで結果が得られた場合は、一致するタグにRoof repairを追加します。

最終的には、入力テキストに対してチェックされたタグリストがあります。この自動タグバインディングの品質は良いです(もちろん私たちにとって)。

しかし、私たちはパフォーマンス上の問題があります:いくつかのテキストは、ステップ1に10kのタグを持っています。そして、それぞれのタグはステップ2でHTTPリクエストsolrでチェックします。 10kリクエストは大変です。タグカウントをトリミングして分析することはできますが、タグリンクの品質はさらに悪化します。

各タグの周期的な要求なしに、solrタグ収集をテキストと照合する方法はありますか?

答えて

1

もう一度ご質問ください。私は最初の部分と2番目の部分をどうやって取得しなかったのですか?38373 AND 本文: "屋根修理"?

まず、タグ・コレクションに照会として全文を送信します。我々はタグの大きなリストを受け取ります。 "名前"フィールドで全文を検索していますか?

+0

>「名前」フィールドで全文を検索していることを意味します。はい、そうです。 id:38373 - それは別のsolrコレクションのidです。例えば、 'companies'、会社38373には_text_が含まれています。これは' tags'へのソーステキストです。 –

+1

[Join Parser](https: /cwiki.apache.org/confluence/display/solr/Other+Parsers#OtherParsers-JoinQueryParser) –

関連する問題