ElasticUtils exposes ElasticSearch More Like This API with the MLT class.
For example:
mlt = MLT(2034, index='addon_index', doctype='addon')
This creates an MLT that will return documents that are like document 2034 of type addon in the addon_index.
You can specify an S and the MLT will derive the index, doctype, ES object, and also use the search specified by the S in the body of the More Like This request. This allows you to get documents like the one specified that also meet query and filter criteria. For example:
s = S().filter(product='firefox')
mlt = MLT(2034, s=s)
You can specify which fields to use with the fields argument. If you don’t, then ElasticSearch will use all the fields.
You can specify additional parameters. See the documentation on the moreLikeThis query.
See also
Represents a lazy ElasticSearch More Like This API request.
This is lazy in the sense that it doesn’t evaluate and execute the ElasticSearch request unless you force it to by iterating over it or getting the length of the search results.
For example:
>>> mlt = MLT(2034, index='addons_index', doctype='addon')
>>> num_related_documents = len(mlt)
>>> num_related_documents = list(mlt)
When the MLT is evaluated, it generates a list of dict results.
Parameters: |
|
---|
Note
You must specify either an s or the index and doctype arguments. Omitting them will result in a ValueError.
Returns an ES
Override this if that behavior isn’t correct for you.
Build query and passes to ElasticSearch, then returns the raw format returned.