SOLR インデックスを 2 つに分割する必要があります。結局のところ、必要なパーティション情報を表す STRING フィールドが既にあります。つまり、検索されるレコードの種類の 1 つは、文字列フィールドがレコード内に存在し、値が含まれている場所であり、もう 1 つの種類は、値が含まれていない場所です。すべてのクエリで、検索するパーティションを指定する必要があります。負のフィールドクエリを使用してそのフィールドを検索する方が速いでしょうか、-strFld:[* TO *]
それとも新しいブールフィールドを作成し、それを「hasStrFld」と呼んで検索する方が良い/速いでしょうか? したがって、strFld が存在しない場合、hasStrFld は false になります。同様に、StrFld にデータがある場合、hasStrFld は true になります。
その他の考慮事項: 将来、インデックスが 3 番目のパーティションに分割される可能性は非常に低く、ブール値の不適切なクエリと負のクエリが不適切になり、列挙値を持つフィールドが考慮されます。ただし、可能性はかなり低く、将来の拡張性よりも今日の高速パフォーマンスの方がはるかに重要です。