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.StringJoiner;
import org.apache.lucene.document.Field;
import org.apache.lucene.index.VectorSimilarityFunction;
public class LLItem {
@ -24,6 +25,12 @@ public class LLItem {
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) {
this.type = type;
this.name = name;
@ -132,6 +139,10 @@ public class LLItem {
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() {
return name;
}
@ -209,7 +220,13 @@ public class LLItem {
return (double[]) data;
}
public KnnFieldData knnFieldData() {
return (KnnFieldData) data;
}
public String stringValue() {
return (String) data;
}
public record KnnFieldData(float[] data, VectorSimilarityFunction vectorSimilarityFunction) {}
}