public class VectorDistanceFunction
extends org.apache.lucene.queries.function.ValueSource
for the special case| Modifier and Type | Field and Description |
|---|---|
protected float |
oneOverPower |
protected float |
power |
protected org.apache.lucene.queries.function.valuesource.MultiValueSource |
source1 |
protected org.apache.lucene.queries.function.valuesource.MultiValueSource |
source2 |
| Constructor and Description |
|---|
VectorDistanceFunction(float power,
org.apache.lucene.queries.function.valuesource.MultiValueSource source1,
org.apache.lucene.queries.function.valuesource.MultiValueSource source2) |
| Modifier and Type | Method and Description |
|---|---|
void |
createWeight(Map context,
org.apache.lucene.search.IndexSearcher searcher) |
String |
description() |
protected double |
distance(int doc,
org.apache.lucene.queries.function.FunctionValues dv1,
org.apache.lucene.queries.function.FunctionValues dv2)
Calculate the distance
|
static double |
distSquaredCartesian(double[] vec1,
double[] vec2)
The square of the cartesian Distance.
|
boolean |
equals(Object o) |
org.apache.lucene.queries.function.FunctionValues |
getValues(Map context,
org.apache.lucene.index.AtomicReaderContext readerContext) |
int |
hashCode() |
protected String |
name() |
static double |
vectorDistance(double[] vec1,
double[] vec2,
double power)
Calculate the p-norm (i.e. length) between two vectors.
|
static double |
vectorDistance(double[] vec1,
double[] vec2,
double power,
double oneOverPower)
Calculate the p-norm (i.e. length) between two vectors.
|
protected org.apache.lucene.queries.function.valuesource.MultiValueSource source1
protected org.apache.lucene.queries.function.valuesource.MultiValueSource source2
protected float power
protected float oneOverPower
public VectorDistanceFunction(float power,
org.apache.lucene.queries.function.valuesource.MultiValueSource source1,
org.apache.lucene.queries.function.valuesource.MultiValueSource source2)
protected String name()
protected double distance(int doc,
org.apache.lucene.queries.function.FunctionValues dv1,
org.apache.lucene.queries.function.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 org.apache.lucene.queries.function.FunctionValues getValues(Map context, org.apache.lucene.index.AtomicReaderContext readerContext) throws IOException
getValues in class org.apache.lucene.queries.function.ValueSourceIOExceptionpublic void createWeight(Map context, org.apache.lucene.search.IndexSearcher searcher) throws IOException
createWeight in class org.apache.lucene.queries.function.ValueSourceIOExceptionpublic boolean equals(Object o)
equals in class org.apache.lucene.queries.function.ValueSourcepublic int hashCode()
hashCode in class org.apache.lucene.queries.function.ValueSourcepublic String description()
description in class org.apache.lucene.queries.function.ValueSourceCopyright © 2000–2014 The Apache Software Foundation. All rights reserved.