1

solr 1.4でsolrクエリ構文の問題が発生しています(私は思います)。期限切れのレコードをSolrクエリから除外しようとしています。ただし、レコードに有効期限レコードがない場合は、そのレコードも戻したいと思います。例えば

有効期限が切れていないレコードのリストのみを取得するには、次のクエリを使用しています。

expirydate:[NOW/DAY TO *]

次に、使用できる有効期限がないレコードのリストを取得しようと思いました

-expirydate:[* TO *]

どちらのクエリも単独で機能します。つまり、最初のクエリは3つのレコードを返します。2番目のクエリは921レコードを返します。ただし、2つのクエリをORと組み合わせると、0レコードが取得されます。

expirydate:[NOW/DAY TO *] OR -expirydate:[* TO *]

私が間違っていることについて何か考えはありますか?

ありがとう

デイブ

4

2 に答える 2

2

ここでは100%確実ではありませんが、この方法でORを否定演算子と組み合わせることができるとは思いません。

すべてのドキュメントに同じ値のダミーフィールドを追加してみてください

enddate:[NOW/DAY TO *] OR (dummy:yes -enddate:[* TO *])
于 2010-03-04T13:57:41.853 に答える
1

私はこの問題に取り組む必要がありました。承認された回答を実装しようとしましたが、これができることに気づきました。

-有効期限:[*今すぐ]

これは、ドキュメントの有効期限が設定されているかどうかに関係なく機能しました。

于 2012-06-15T17:53:59.407 に答える