|
@@ -31,6 +31,7 @@ import org.apache.lucene.index.SegmentWriteState;
|
|
|
import org.apache.lucene.index.VectorEncoding;
|
|
import org.apache.lucene.index.VectorEncoding;
|
|
|
import org.apache.lucene.index.VectorSimilarityFunction;
|
|
import org.apache.lucene.index.VectorSimilarityFunction;
|
|
|
import org.apache.lucene.search.FieldExistsQuery;
|
|
import org.apache.lucene.search.FieldExistsQuery;
|
|
|
|
|
+import org.apache.lucene.search.MatchNoDocsQuery;
|
|
|
import org.apache.lucene.search.Query;
|
|
import org.apache.lucene.search.Query;
|
|
|
import org.apache.lucene.search.join.BitSetProducer;
|
|
import org.apache.lucene.search.join.BitSetProducer;
|
|
|
import org.apache.lucene.search.knn.KnnSearchStrategy;
|
|
import org.apache.lucene.search.knn.KnnSearchStrategy;
|
|
@@ -2446,6 +2447,9 @@ public class DenseVectorFieldMapper extends FieldMapper {
|
|
|
"to perform knn search on field [" + name() + "], its mapping must have [index] set to [true]"
|
|
"to perform knn search on field [" + name() + "], its mapping must have [index] set to [true]"
|
|
|
);
|
|
);
|
|
|
}
|
|
}
|
|
|
|
|
+ if (dims == null) {
|
|
|
|
|
+ return new MatchNoDocsQuery("No data has been indexed for field [" + name() + "]");
|
|
|
|
|
+ }
|
|
|
KnnSearchStrategy knnSearchStrategy = heuristic.getKnnSearchStrategy();
|
|
KnnSearchStrategy knnSearchStrategy = heuristic.getKnnSearchStrategy();
|
|
|
return switch (getElementType()) {
|
|
return switch (getElementType()) {
|
|
|
case BYTE -> createKnnByteQuery(
|
|
case BYTE -> createKnnByteQuery(
|