Class MoreLikeThisQuery


  • public class MoreLikeThisQuery
    extends Query
    A simple wrapper for MoreLikeThis for use in scenarios where a Query object is required eg in custom QueryParser extensions. At query.rewrite() time the reader is used to construct the actual MoreLikeThis object and obtain the real Query object.
    • Field Detail

      • likeText

        private java.lang.String likeText
      • moreLikeFields

        private java.lang.String[] moreLikeFields
      • fieldName

        private final java.lang.String fieldName
      • percentTermsToMatch

        private float percentTermsToMatch
      • minTermFrequency

        private int minTermFrequency
      • maxQueryTerms

        private int maxQueryTerms
      • stopWords

        private java.util.Set<?> stopWords
      • minDocFreq

        private int minDocFreq
    • Constructor Detail

      • MoreLikeThisQuery

        public MoreLikeThisQuery​(java.lang.String likeText,
                                 java.lang.String[] moreLikeFields,
                                 Analyzer analyzer,
                                 java.lang.String fieldName)
        Parameters:
        moreLikeFields - fields used for similarity measure
    • Method Detail

      • rewrite

        public Query rewrite​(IndexSearcher indexSearcher)
                      throws java.io.IOException
        Description copied from class: Query
        Expert: called to re-write queries into primitive queries. For example, a PrefixQuery will be rewritten into a BooleanQuery that consists of TermQuerys.

        Callers are expected to call rewrite multiple times if necessary, until the rewritten query is the same as the original query.

        The rewrite process may be able to make use of IndexSearcher's executor and be executed in parallel if the executor is provided.

        However, if any of the intermediary queries do not satisfy the new API, parallel rewrite is not possible for any subsequent sub-queries. To take advantage of this API, the entire query tree must override this method.

        Overrides:
        rewrite in class Query
        Throws:
        java.io.IOException
        See Also:
        IndexSearcher.rewrite(Query)
      • toString

        public java.lang.String toString​(java.lang.String field)
        Description copied from class: Query
        Prints a query to a string, with field assumed to be the default field and omitted.
        Specified by:
        toString in class Query
      • getPercentTermsToMatch

        public float getPercentTermsToMatch()
      • setPercentTermsToMatch

        public void setPercentTermsToMatch​(float percentTermsToMatch)
      • getAnalyzer

        public Analyzer getAnalyzer()
      • setAnalyzer

        public void setAnalyzer​(Analyzer analyzer)
      • getLikeText

        public java.lang.String getLikeText()
      • setLikeText

        public void setLikeText​(java.lang.String likeText)
      • getMaxQueryTerms

        public int getMaxQueryTerms()
      • setMaxQueryTerms

        public void setMaxQueryTerms​(int maxQueryTerms)
      • getMinTermFrequency

        public int getMinTermFrequency()
      • setMinTermFrequency

        public void setMinTermFrequency​(int minTermFrequency)
      • getMoreLikeFields

        public java.lang.String[] getMoreLikeFields()
      • setMoreLikeFields

        public void setMoreLikeFields​(java.lang.String[] moreLikeFields)
      • getStopWords

        public java.util.Set<?> getStopWords()
      • setStopWords

        public void setStopWords​(java.util.Set<?> stopWords)
      • getMinDocFreq

        public int getMinDocFreq()
      • setMinDocFreq

        public void setMinDocFreq​(int minDocFreq)
      • hashCode

        public int hashCode()
        Description copied from class: Query
        Override and implement query hash code properly in a subclass. This is required so that QueryCache works properly.
        Specified by:
        hashCode in class Query
        See Also:
        Query.equals(Object)
      • equals

        public boolean equals​(java.lang.Object other)
        Description copied from class: Query
        Override and implement query instance equivalence properly in a subclass. This is required so that QueryCache works properly.

        Typically a query will be equal to another only if it's an instance of the same class and its document-filtering properties are identical to those of the other instance. Utility methods are provided for certain repetitive code.

        Specified by:
        equals in class Query
        See Also:
        Query.sameClassAs(Object), Query.classHash()
      • visit

        public void visit​(QueryVisitor visitor)
        Description copied from class: Query
        Recurse through the query tree, visiting any child queries.
        Specified by:
        visit in class Query
        Parameters:
        visitor - a QueryVisitor to be called by each query in the tree