public class VectorDistanceFunction extends ValueSource
Common cases:
for the special case| Modifier and Type | Field and Description |
|---|---|
protected float |
oneOverPower |
protected float |
power |
protected MultiValueSource |
source1 |
protected MultiValueSource |
source2 |
| Constructor and Description |
|---|
VectorDistanceFunction(float power,
MultiValueSource source1,
MultiValueSource source2) |
| Modifier and Type | Method and Description |
|---|---|
void |
createWeight(Map context,
IndexSearcher searcher) |
String |
description() |
protected double |
distance(int doc,
FunctionValues dv1,
FunctionValues dv2)
Calculate the distance
|
static double |
distSquaredCartesian(double[] vec1,
double[] vec2)
The square of the cartesian Distance.
|
boolean |
equals(Object o) |
FunctionValues |
getValues(Map context,
LeafReaderContext readerContext) |
int |
hashCode() |
protected String |
name() |
static double |
vectorDistance(double[] vec1,
double[] vec2,
double power)
Calculate the p-norm (i.e.
|
static double |
vectorDistance(double[] vec1,
double[] vec2,
double power,
double oneOverPower)
Calculate the p-norm (i.e.
|
asDoubleValuesSource, asLongValuesSource, fromDoubleValuesSource, getSortField, newContext, toStringprotected MultiValueSource source1
protected MultiValueSource source2
protected float power
protected float oneOverPower
public VectorDistanceFunction(float power,
MultiValueSource source1,
MultiValueSource source2)
protected String name()
protected double distance(int doc,
FunctionValues dv1,
FunctionValues dv2)
throws IOException
doc - The current docdv1 - The values from the first MultiValueSourcedv2 - The values from the second MultiValueSourceIOExceptionpublic static double vectorDistance(double[] vec1,
double[] vec2,
double power)
See Lp space
vec1 - The first vectorvec2 - The second vectorpower - The power (2 for cartesian distance, 1 for manhattan, etc.)vectorDistance(double[], double[], double, double)public static double vectorDistance(double[] vec1,
double[] vec2,
double power,
double oneOverPower)
vec1 - The first vectorvec2 - The second vectorpower - The power (2 for cartesian distance, 1 for manhattan, etc.)oneOverPower - If you've pre-calculated oneOverPower and cached it, use this method to save
one division operation over vectorDistance(double[], double[], double).public static double distSquaredCartesian(double[] vec1,
double[] vec2)
vec1 - The first pointvec2 - The second pointpublic FunctionValues getValues(Map context, LeafReaderContext readerContext) throws IOException
getValues in class ValueSourceIOExceptionpublic void createWeight(Map context, IndexSearcher searcher) throws IOException
createWeight in class ValueSourceIOExceptionpublic boolean equals(Object o)
equals in class ValueSourcepublic int hashCode()
hashCode in class ValueSourcepublic String description()
description in class ValueSourceCopyright © 2000-2018 Apache Software Foundation. All Rights Reserved.