2012-08-09 15 views
15

私のクエリの2番目の部分には、whileデータの結果のリストをnullにしたくありません。私はどのようにsolrでそれを行うが、luceneでは見つけない。空のフィールドにluceneを照会する方法は?

(field_one:検索とfield_two:3000)OR(field_three:検索とfield_two:3000 NOT NULL field_one

問合せ:

誰もがアイデアに おかげ

文字列を持っています

+ field_one:検索+ field_two:3000 + field_three:検索+ field_two:3000 -field_one:null

答えて

14
*:* -MY_FIELD_NAME:[* TO *] 

上記は、Luceneの*:*に注意してください。

+0

私はあなたの提案を試みますが、それは動作しません。値が指定されていないときに、nullでないかどうかを示す属性がインデックスに登録されていない場合、要求はそれを処理できません。 –

+0

上記がうまくいくためには、フィールドが存在する必要があります(NULLと非NULL(空文字参照)を区別するだけです) – Mikos

5
*:* -MY_FIELD_NAME:[* TO "zzzzzzzzzz"] 

「z」文字を追加して、フィールドの任意の値を確実に含めることができます。

+0

残念ながら、 "zzzzzzzzzzz"では英数字以外の文字は考慮されません。 –

関連する問題