Class GeoContextMapping
java.lang.Object
org.elasticsearch.search.suggest.completion.context.ContextMapping<GeoQueryContext>
org.elasticsearch.search.suggest.completion.context.GeoContextMapping
- All Implemented Interfaces:
ToXContent
,ToXContentFragment
public class GeoContextMapping extends ContextMapping<GeoQueryContext>
A
ContextMapping
that uses a geo location/area as a
criteria.
The suggestions can be boosted and/or filtered depending on
whether it falls within an area, represented by a query geo hash
with a specified precision
GeoQueryContext
defines the options for constructing
a unit of query context for this context type-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
GeoContextMapping.Builder
Nested classes/interfaces inherited from class org.elasticsearch.search.suggest.completion.context.ContextMapping
ContextMapping.InternalQueryContext, ContextMapping.Type
Nested classes/interfaces inherited from interface org.elasticsearch.common.xcontent.ToXContent
ToXContent.DelegatingMapParams, ToXContent.MapParams, ToXContent.Params
-
Field Summary
Fields Modifier and Type Field Description static int
DEFAULT_PRECISION
static java.lang.String
FIELD_FIELDNAME
static java.lang.String
FIELD_PRECISION
Fields inherited from class org.elasticsearch.search.suggest.completion.context.ContextMapping
FIELD_NAME, FIELD_TYPE, name, type
-
Method Summary
Modifier and Type Method Description boolean
equals(java.lang.Object o)
protected GeoQueryContext
fromXContent(XContentParser parser)
Prototype for the query contextjava.lang.String
getFieldName()
int
getPrecision()
int
hashCode()
protected static GeoContextMapping
load(java.lang.String name, java.util.Map<java.lang.String,java.lang.Object> config)
java.util.Set<java.lang.String>
parseContext(ParseContext.Document document)
Retrieves a set of context from adocument
at index-time.java.util.Set<java.lang.String>
parseContext(ParseContext parseContext, XContentParser parser)
Parse a set ofCharSequence
contexts at index-time.protected XContentBuilder
toInnerXContent(XContentBuilder builder, ToXContent.Params params)
Implementations should add specific configurations that need to be persistedjava.util.List<ContextMapping.InternalQueryContext>
toInternalQueryContexts(java.util.List<GeoQueryContext> queryContexts)
Parse a list ofGeoQueryContext
usingparser
.protected void
validateReferences(Version indexVersionCreated, java.util.function.Function<java.lang.String,MappedFieldType> fieldResolver)
Checks if the current context is consistent with the rest of the fields.Methods inherited from class org.elasticsearch.search.suggest.completion.context.ContextMapping
name, parseQueryContext, toString, toXContent, type, validateContextPaths
-
Field Details
-
FIELD_PRECISION
public static final java.lang.String FIELD_PRECISION- See Also:
- Constant Field Values
-
FIELD_FIELDNAME
public static final java.lang.String FIELD_FIELDNAME- See Also:
- Constant Field Values
-
DEFAULT_PRECISION
public static final int DEFAULT_PRECISION- See Also:
- Constant Field Values
-
-
Method Details
-
getFieldName
public java.lang.String getFieldName() -
getPrecision
public int getPrecision() -
load
protected static GeoContextMapping load(java.lang.String name, java.util.Map<java.lang.String,java.lang.Object> config) -
toInnerXContent
protected XContentBuilder toInnerXContent(XContentBuilder builder, ToXContent.Params params) throws java.io.IOExceptionDescription copied from class:ContextMapping
Implementations should add specific configurations that need to be persisted- Specified by:
toInnerXContent
in classContextMapping<GeoQueryContext>
- Throws:
java.io.IOException
-
parseContext
public java.util.Set<java.lang.String> parseContext(ParseContext parseContext, XContentParser parser) throws java.io.IOException, ElasticsearchParseExceptionParse a set ofCharSequence
contexts at index-time. Acceptable formats:- Array:
[<GEO POINT>, ..]
- String/Object/Array:
"GEO POINT"
GeoPoint(String)
for GEO POINT- Specified by:
parseContext
in classContextMapping<GeoQueryContext>
- Throws:
java.io.IOException
ElasticsearchParseException
- Array:
-
parseContext
Description copied from class:ContextMapping
Retrieves a set of context from adocument
at index-time.- Specified by:
parseContext
in classContextMapping<GeoQueryContext>
-
fromXContent
Description copied from class:ContextMapping
Prototype for the query context- Specified by:
fromXContent
in classContextMapping<GeoQueryContext>
- Throws:
java.io.IOException
-
toInternalQueryContexts
public java.util.List<ContextMapping.InternalQueryContext> toInternalQueryContexts(java.util.List<GeoQueryContext> queryContexts)Parse a list ofGeoQueryContext
usingparser
. A QueryContexts accepts one of the following forms:- Object: GeoQueryContext
- String: GeoQueryContext value with boost=1 precision=PRECISION neighbours=[PRECISION]
- Array:
[GeoQueryContext, ..]
- Object:
GEO POINT
{"lat": <double>, "lon": <double>, "precision": <int>, "neighbours": <[int, ..]>}
{"context": <string>, "boost": <int>, "precision": <int>, "neighbours": <[int, ..]>}
{"context": <GEO POINT>, "boost": <int>, "precision": <int>, "neighbours": <[int, ..]>}
- String:
GEO POINT
GeoPoint(String)
for GEO POINT- Specified by:
toInternalQueryContexts
in classContextMapping<GeoQueryContext>
-
validateReferences
protected void validateReferences(Version indexVersionCreated, java.util.function.Function<java.lang.String,MappedFieldType> fieldResolver)Description copied from class:ContextMapping
Checks if the current context is consistent with the rest of the fields. For example, the GeoContext should check that the field that it points to has the correct type.- Overrides:
validateReferences
in classContextMapping<GeoQueryContext>
-
equals
public boolean equals(java.lang.Object o)- Overrides:
equals
in classContextMapping<GeoQueryContext>
-
hashCode
public int hashCode()- Overrides:
hashCode
in classContextMapping<GeoQueryContext>
-