public class VectorDistanceFunction extends ValueSource
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,
AtomicReaderContext 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.
|
getSortField, newContext, toString
protected 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)
doc
- The current docdv1
- The values from the first MultiValueSourcedv2
- The values from the second MultiValueSourcepublic static double vectorDistance(double[] vec1, double[] vec2, double power)
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, AtomicReaderContext readerContext) throws IOException
getValues
in class ValueSource
IOException
public void createWeight(Map context, IndexSearcher searcher) throws IOException
createWeight
in class ValueSource
IOException
public boolean equals(Object o)
equals
in class ValueSource
public int hashCode()
hashCode
in class ValueSource
public String description()
description
in class ValueSource
Copyright © 2000-2014 Apache Software Foundation. All Rights Reserved.