0

クエリに SOLR を使用する API に対して URL リクエストを作成しようとしています。

さまざまな値を含む多くのフィールドを持つ多くのデータがあり、多くの場合、それらのフィールドの一部に null 値が含まれます。

特定のフィールドが null ではなく、実際の値が含まれているすべてのデータを取得するクエリを作成したいと考えています。

たとえば、各エントリには、タグの配列である tags というフィールドが含まれています。タグは、たとえば test という単語です。

-tags:[* TO *] を実行しようとしましたが、その結果、タグが null であるすべてのデータ セットが返されます。

また、tags:[* TO *] を試してみました。これは、タグが null の場所とタグが実際に設定されている場所の両方で、すべてのデータを返します。

値を持つタグのみが返される最後のケースにたどり着くためにあらゆる種類のことを試みてきました。助けていただければ幸いです。

4

2 に答える 2

2

「データの取得」や「フィールドの取得」などの混乱を招く可能性のある用語を使用しているため、質問は少し混乱しています。SOLR では、取得するドキュメント(またはレコード) をクエリで指定します。

フィールド「タグ」に何らかの値を持つすべてのドキュメントが必要な場合は、次を使用できます

(tags:*)

フィールド「タグ」に値がないすべてのドキュメントが必要な場合は、次を使用できます。

(*:* AND NOT tags:*)  

また

(*:* AND -tags:*)
于 2016-12-18T16:36:42.887 に答える
0

and- と同じではありません。ANDこれは、クエリで使用する必要がある区切り記号です。

あなたのクエリはおそらく (andデフォルトフィールドのどこかにあるドキュメント) または ( deleted:false) または ( tags:[* TO *]) を検索するだけです。

複数の条件をグループ化するには、適切なセパレータとその前後にスペースを使用してください。fqまた、これらの静的なクエリ ( など) にはフィルター クエリ ( ) を使用することをお勧めしdeleted:falseます。これにより、そのクエリを実際のクエリとは別にキャッシュできるようになります。

于 2016-12-18T14:58:25.847 に答える