2011-01-06 7 views
3

私は、Solrのschema.xmlの文字列としてインデックスが付けられています。これはmysqlデータベースのboolean(tinyint)列からのものです。solrの検索結果でフィールド値が1またはtrueです

クエリでは、このフィールドに対して1を使用して検索しますが、変更を加えずに、このクエリは正しい結果を返すことができません。私が1の代わりに真を使用した後、それは再び働いた。今度は再び間違っていますが、実際には問題はありません。

ここで、正確な問題は何ですか? schema.ymlのフィールドタイプをintegerに変更する必要がありますか?

ありがとうございます。

答えて

5

文字列フィールドなので、インデックスの作成方法はわかりません。 "true"/"false"、 "1"/"0"、 "on"/"off"などとすることもできます。 "

それは意味的に私は例えば、ブールFIELDTYPEを使用することをお勧めブールフィールドの場合:

<fieldType name="boolean" class="solr.BoolField" sortMissingLast="true" omitNorms="true"/> 
:これが機能するため

<field name="inStock" type="boolean" indexed="true" stored="true" /> 

あなたは宣言したブールFIELDTYPEを(それが来るデフォルトのスキーマ内で宣言)が必要です

この変更後にインデックスを再構築することを忘れないでください。

関連する問題