2016-05-08 8 views
0

私は非常に簡単なデモのためにSolrを使用する必要があります。私は名前、説明、キーワードなどの情報を持つ37kレコードのオンライン製品(gmail、Googleアナリティクスなど)を含むMySqlデータベースを持っています。 。残りのフィールドがテキストフィールドであるが、私はこのような構造データBasic Solrのクエリとデータ構造

{   
    "keywords":"[\"music-streaming,streaming,internet-radio,audio-scrobbling\"]", 
    "description":"Last.fm is a music community website that offers personalized internet radio, using a recommendation system called \"Audioscrobbler\" to build a detailed profile of users based on their music tastes and interests. The service...", 
    "operatingSystem":"[\"Mac,Windows,Linux,Web/Cloud,Android,iPhone,WindowsPhone,KindleFire\"]", 
    "meta":"[\"Freemium\", \"Mac\", \"Windows\", \"Linux\", \"Web/Cloud\", \"Android\", \"iPhone\", \"...\", \"WindowsPhone\", \"KindleFire\"]", 
    "name":"Last.fm", 
    "id":39145, 
    "category":"audio-and-music"} 

メタ&オペレーティング・システムを格納する管理

は、JSON配列です。

私は三つのこと

  1. で助けを必要とするが、このデータ構造(スキーマ)の構造、検索、および索引の面で良いですか?
  2. キーワードに基づいて関連商品を表示するクエリを作成しますか?
  3. キーワードを検索するのではなく、フィールドのメタとオペレーティングシステムをフィルタにするにはどうすればよいですか?

私の最終的な目標は、ユーザーが複数の値を持つフィールドは、おそらく内の別々の用語としてインデックス付けされなければならない

答えて

0

オペレーティングシステムおよびメタに従ってフィルタリング特定のキーワードを入力することができます検索バーを持つことですmultiValuedフィールドを使用すると、特定の値を持つフィールドを照会/フィルタリングできます。 'Mac'、 'Windows'、 'Linux'、 'Web/Cloud'などのフィールドにインデックスを付け、すべての値が埋め込まれた単一の値ではない。

正確な要件に応じて、MoreLikeThisコンポーネントを使用して同様の関連ドキュメントを見つけることができます。

フィールドが適切に多値化されている場合は、generate a Facet on the fieldをフィルタリングして(結果として適切な結果セットをフィルタリングするためにfqを使用します)。

+0

おかげさまで、ビジネスロジックが賢明なのは、私が探していることです。技術的には、あなたが言及したものを実装する方法を学ぶ必要があります。ヒントをありがとう –

+0

'dataimporthandler'を使ってMySqlからデータを読み込むことができます。 https://cwiki.apache.org/confluence/display/solr/Uploading+Structured+Data+Store+Data+with+the+Data+Import+Handler – darthsidious

関連する問題