2016-09-08 8 views
2

フィールドに値としてJsonのデータを保存したいのですが、現時点ではフィールドタイプをstringまたはtextとして保存しようとしていますが、これは正常ですが、Jsonは文字列に格納されているためダブルクォート(")はその中でエスケープされますJson Objectではどのフィールドタイプを保持する必要がありますか?JSONオブジェクトを格納するためのSolrフィールドタイプとは何ですか?

例えば、

"Thumbnail": { 
       "Url": "http://www.example.com/image/481989943", 
       "Height": 125, 
       "Width": "100" 
      } 
+0

JSONドキュメントのフィールドを照会する場合は、こちらを参考にしてください。http://stackoverflow.com/questions/5584857/solr-documents-with-child-elements – cheffe

答えて

4

Stringとして格納できます。あなたが直面している問題は、JSONをSolr JSONレスポンス内の構造体として返すことを望むときです。デフォルトでは、Solrはの内容で埋め込み、のコンテンツを埋め込むことを知りません。

そうでない場合は、パラメータに[json] document transformerを入力してください。

+0

Thanks @AlexandreRafalovitch !!あなたはそれを完全に仮定しました...しかし、あなたはそれに答える前に解決策を見つけました...とにかく私が探していた完璧な答えです。 –

0

Stringタイプは、一般的に等トークン化を行うことなく、正確な文字列として単語/文章を記憶する以下のような文字列の代わりに私のフィールドがThumbnailであり、それはJSONオブジェクトとして格納され、表示されるべきであると仮定厳密な一致を保存するのに便利です(ファセットなど)。

Textは、通常、tokenizationを実行し、2次処理(下部ケーシングなど)を実行します。あなたがその文の一部である単語にマッチさせたいときは、もっと使います。

テキストでは、適切な検索を行うために、より有用なトークンを作成するために、トークヤーとフィルターをsolrで利用できるようにすることができます。

私はtextとして保存することをお勧めします。

データをtokenizeにすると便利ですし、検索にも役立ちます。

Jsonと同様に、サイズが大きくなり、サイズが大きくなる可能性があるため、stringの代わりにtextとして保存すると便利です。

関連する問題