Add knn field

This commit is contained in:
Andrea Cavalli 2022-02-23 00:49:29 +01:00
parent ad67aa003c
commit f5729f0b65

View File

@ -11,6 +11,7 @@ import java.util.Arrays;
import java.util.Objects; import java.util.Objects;
import java.util.StringJoiner; import java.util.StringJoiner;
import org.apache.lucene.document.Field; import org.apache.lucene.document.Field;
import org.apache.lucene.index.VectorSimilarityFunction;
public class LLItem { public class LLItem {
@ -24,6 +25,12 @@ public class LLItem {
this.data = data; this.data = data;
} }
public LLItem(LLType type, String name, KnnFieldData data) {
this.type = type;
this.name = name;
this.data = data;
}
private LLItem(LLType type, String name, String data) { private LLItem(LLType type, String name, String data) {
this.type = type; this.type = type;
this.name = name; this.name = name;
@ -132,6 +139,10 @@ public class LLItem {
return new LLItem(LLType.NumericDocValuesField, name, data); return new LLItem(LLType.NumericDocValuesField, name, data);
} }
public static LLItem newKnnField(String name, KnnFieldData knnFieldData) {
return new LLItem(LLType.NumericDocValuesField, name, knnFieldData);
}
public String getName() { public String getName() {
return name; return name;
} }
@ -209,7 +220,13 @@ public class LLItem {
return (double[]) data; return (double[]) data;
} }
public KnnFieldData knnFieldData() {
return (KnnFieldData) data;
}
public String stringValue() { public String stringValue() {
return (String) data; return (String) data;
} }
public record KnnFieldData(float[] data, VectorSimilarityFunction vectorSimilarityFunction) {}
} }