Class MoreLikeThisQueryBuilder

java.lang.Object
org.elasticsearch.index.query.AbstractQueryBuilder<MoreLikeThisQueryBuilder>
org.elasticsearch.index.query.MoreLikeThisQueryBuilder
All Implemented Interfaces:
NamedWriteable, Writeable, org.elasticsearch.common.xcontent.ToXContent, org.elasticsearch.common.xcontent.ToXContentObject, QueryBuilder, Rewriteable<QueryBuilder>

public class MoreLikeThisQueryBuilder
extends AbstractQueryBuilder<MoreLikeThisQueryBuilder>
A more like this query that finds documents that are "like" the provided set of document(s). The documents are provided as a set of strings and/or a list of MoreLikeThisQueryBuilder.Item.
  • Field Details

    • NAME

      public static final java.lang.String NAME
      See Also:
      Constant Field Values
    • DEFAULT_MAX_QUERY_TERMS

      public static final int DEFAULT_MAX_QUERY_TERMS
      See Also:
      Constant Field Values
    • DEFAULT_MIN_TERM_FREQ

      public static final int DEFAULT_MIN_TERM_FREQ
      See Also:
      Constant Field Values
    • DEFAULT_MIN_DOC_FREQ

      public static final int DEFAULT_MIN_DOC_FREQ
      See Also:
      Constant Field Values
    • DEFAULT_MAX_DOC_FREQ

      public static final int DEFAULT_MAX_DOC_FREQ
      See Also:
      Constant Field Values
    • DEFAULT_MIN_WORD_LENGTH

      public static final int DEFAULT_MIN_WORD_LENGTH
      See Also:
      Constant Field Values
    • DEFAULT_MAX_WORD_LENGTH

      public static final int DEFAULT_MAX_WORD_LENGTH
      See Also:
      Constant Field Values
    • DEFAULT_MINIMUM_SHOULD_MATCH

      public static final java.lang.String DEFAULT_MINIMUM_SHOULD_MATCH
      See Also:
      Constant Field Values
    • DEFAULT_BOOST_TERMS

      public static final float DEFAULT_BOOST_TERMS
      See Also:
      Constant Field Values
    • DEFAULT_INCLUDE

      public static final boolean DEFAULT_INCLUDE
      See Also:
      Constant Field Values
    • DEFAULT_FAIL_ON_UNSUPPORTED_FIELDS

      public static final boolean DEFAULT_FAIL_ON_UNSUPPORTED_FIELDS
      See Also:
      Constant Field Values
    • DOC

      public static final org.elasticsearch.common.ParseField DOC
  • Constructor Details

    • MoreLikeThisQueryBuilder

      public MoreLikeThisQueryBuilder​(java.lang.String[] likeTexts, MoreLikeThisQueryBuilder.Item[] likeItems)
      Constructs a new more like this query which uses the default search field.
      Parameters:
      likeTexts - the text to use when generating the 'More Like This' query.
      likeItems - the documents to use when generating the 'More Like This' query.
    • MoreLikeThisQueryBuilder

      public MoreLikeThisQueryBuilder​(@Nullable java.lang.String[] fields, @Nullable java.lang.String[] likeTexts, @Nullable MoreLikeThisQueryBuilder.Item[] likeItems)
      Sets the field names that will be used when generating the 'More Like This' query.
      Parameters:
      fields - the field names that will be used when generating the 'More Like This' query.
      likeTexts - the text to use when generating the 'More Like This' query.
      likeItems - the documents to use when generating the 'More Like This' query.
    • MoreLikeThisQueryBuilder

      public MoreLikeThisQueryBuilder​(StreamInput in) throws java.io.IOException
      Read from a stream.
      Throws:
      java.io.IOException
  • Method Details

    • doWriteTo

      protected void doWriteTo​(StreamOutput out) throws java.io.IOException
      Specified by:
      doWriteTo in class AbstractQueryBuilder<MoreLikeThisQueryBuilder>
      Throws:
      java.io.IOException
    • fields

      public java.lang.String[] fields()
    • likeTexts

      public java.lang.String[] likeTexts()
    • likeItems

      public MoreLikeThisQueryBuilder.Item[] likeItems()
    • unlike

      public MoreLikeThisQueryBuilder unlike​(java.lang.String[] unlikeTexts)
      Sets the text from which the terms should not be selected from.
    • unlikeTexts

      public java.lang.String[] unlikeTexts()
    • unlike

      public MoreLikeThisQueryBuilder unlike​(MoreLikeThisQueryBuilder.Item[] unlikeItems)
      Sets the documents from which the terms should not be selected from.
    • unlikeItems

      public MoreLikeThisQueryBuilder.Item[] unlikeItems()
    • maxQueryTerms

      public MoreLikeThisQueryBuilder maxQueryTerms​(int maxQueryTerms)
      Sets the maximum number of query terms that will be included in any generated query. Defaults to 25.
    • maxQueryTerms

      public int maxQueryTerms()
    • minTermFreq

      public MoreLikeThisQueryBuilder minTermFreq​(int minTermFreq)
      The frequency below which terms will be ignored in the source doc. The default frequency is 2.
    • minTermFreq

      public int minTermFreq()
    • minDocFreq

      public MoreLikeThisQueryBuilder minDocFreq​(int minDocFreq)
      Sets the frequency at which words will be ignored which do not occur in at least this many docs. Defaults to 5.
    • minDocFreq

      public int minDocFreq()
    • maxDocFreq

      public MoreLikeThisQueryBuilder maxDocFreq​(int maxDocFreq)
      Set the maximum frequency in which words may still appear. Words that appear in more than this many docs will be ignored. Defaults to unbounded.
    • maxDocFreq

      public int maxDocFreq()
    • minWordLength

      public MoreLikeThisQueryBuilder minWordLength​(int minWordLength)
      Sets the minimum word length below which words will be ignored. Defaults to 0.
    • minWordLength

      public int minWordLength()
    • maxWordLength

      public MoreLikeThisQueryBuilder maxWordLength​(int maxWordLength)
      Sets the maximum word length above which words will be ignored. Defaults to unbounded (0).
    • maxWordLength

      public int maxWordLength()
    • stopWords

      public MoreLikeThisQueryBuilder stopWords​(java.lang.String... stopWords)
      Set the set of stopwords.

      Any word in this set is considered "uninteresting" and ignored. Even if your Analyzer allows stopwords, you might want to tell the MoreLikeThis code to ignore them, as for the purposes of document similarity it seems reasonable to assume that "a stop word is never interesting".

    • stopWords

      public MoreLikeThisQueryBuilder stopWords​(java.util.List<java.lang.String> stopWords)
    • stopWords

      public java.lang.String[] stopWords()
    • analyzer

      public MoreLikeThisQueryBuilder analyzer​(java.lang.String analyzer)
      The analyzer that will be used to analyze the text. Defaults to the analyzer associated with the field.
    • analyzer

      public java.lang.String analyzer()
    • minimumShouldMatch

      public MoreLikeThisQueryBuilder minimumShouldMatch​(java.lang.String minimumShouldMatch)
      Number of terms that must match the generated query expressed in the common syntax for minimum should match. Defaults to 30%.
      See Also:
      Queries.calculateMinShouldMatch(int, String)
    • minimumShouldMatch

      public java.lang.String minimumShouldMatch()
    • boostTerms

      public MoreLikeThisQueryBuilder boostTerms​(float boostTerms)
      Sets the boost factor to use when boosting terms. Defaults to 0 (deactivated).
    • boostTerms

      public float boostTerms()
    • include

      public MoreLikeThisQueryBuilder include​(boolean include)
      Whether to include the input documents. Defaults to false
    • include

      public boolean include()
    • failOnUnsupportedField

      public MoreLikeThisQueryBuilder failOnUnsupportedField​(boolean fail)
      Whether to fail or return no result when this query is run against a field which is not supported such as binary/numeric fields.
    • failOnUnsupportedField

      public boolean failOnUnsupportedField()
    • doXContent

      protected void doXContent​(org.elasticsearch.common.xcontent.XContentBuilder builder, org.elasticsearch.common.xcontent.ToXContent.Params params) throws java.io.IOException
      Specified by:
      doXContent in class AbstractQueryBuilder<MoreLikeThisQueryBuilder>
      Throws:
      java.io.IOException
    • fromXContent

      public static MoreLikeThisQueryBuilder fromXContent​(org.elasticsearch.common.xcontent.XContentParser parser) throws java.io.IOException
      Throws:
      java.io.IOException
    • isTypeless

      public boolean isTypeless()
    • getWriteableName

      public java.lang.String getWriteableName()
      Description copied from interface: NamedWriteable
      Returns the name of the writeable object
    • doToQuery

      protected org.apache.lucene.search.Query doToQuery​(SearchExecutionContext context) throws java.io.IOException
      Specified by:
      doToQuery in class AbstractQueryBuilder<MoreLikeThisQueryBuilder>
      Throws:
      java.io.IOException
    • doHashCode

      protected int doHashCode()
      Specified by:
      doHashCode in class AbstractQueryBuilder<MoreLikeThisQueryBuilder>
    • doEquals

      protected boolean doEquals​(MoreLikeThisQueryBuilder other)
      Description copied from class: AbstractQueryBuilder
      Indicates whether some other QueryBuilder object of the same type is "equal to" this one.
      Specified by:
      doEquals in class AbstractQueryBuilder<MoreLikeThisQueryBuilder>
    • doRewrite

      protected QueryBuilder doRewrite​(QueryRewriteContext queryRewriteContext)
      Overrides:
      doRewrite in class AbstractQueryBuilder<MoreLikeThisQueryBuilder>