Example usage for org.apache.solr.common.params MoreLikeThisParams MAX_QUERY_TERMS

List of usage examples for org.apache.solr.common.params MoreLikeThisParams MAX_QUERY_TERMS

Introduction

In this page you can find the example usage for org.apache.solr.common.params MoreLikeThisParams MAX_QUERY_TERMS.

Prototype

String MAX_QUERY_TERMS

To view the source code for org.apache.solr.common.params MoreLikeThisParams MAX_QUERY_TERMS.

Click Source Link

Usage

From source file:de.fhg.iais.cortex.search.Searcher.java

License:Apache License

/**
 * Get similar documents regarding the most relevant document specified by the query.
 * //from  www  .  jav a2  s . c  o m
 * @param query Query to get base document for similarity search
 * @return {@link SearchResults}
 */

public SearchResults<SearchResult> moreLikeThis(Query query) {
    MltSolrQueryBuilder mltQueryBuilder = this.queryBuilderFactory.newMltQueryBuilder(query.getQuery(),
            (query.getOffset() < 0) ? 0 : query.getOffset(),
            (query.getRows() < 0) ? this.mltSearchParameters.getMltRows() : query.getRows());
    mltQueryBuilder
            .setParameter(MoreLikeThisParams.MIN_DOC_FREQ, this.mltSearchParameters.getMltMinDocFrequency())
            .setParameter(MoreLikeThisParams.MIN_TERM_FREQ, this.mltSearchParameters.getMltMinTermFrequency())
            .setParameter(MoreLikeThisParams.MIN_WORD_LEN, this.mltSearchParameters.getMltMinWordLength())
            .setParameter(MoreLikeThisParams.MAX_WORD_LEN, this.mltSearchParameters.getMltMaxWordLength())
            .setParameter(MoreLikeThisParams.BOOST, this.mltSearchParameters.isMltBoost())
            .setParameter(MoreLikeThisParams.MAX_QUERY_TERMS, this.mltSearchParameters.getMltMaxQueryTerms())
            .setParameter(MoreLikeThisParams.MAX_NUM_TOKENS_PARSED,
                    this.mltSearchParameters.getMltMaxTokensParsed())
            .setParameter(MoreLikeThisParams.SIMILARITY_FIELDS,
                    Strings.isNullOrEmpty(query.getMoreLikeThisFields())
                            ? this.mltSearchParameters.getMltSimilarFields()
                            : query.getMoreLikeThisFields())
            .addExcludingFilterQueries(query.getExclusions());

    SolrQuery solrQuery = mltQueryBuilder.build();
    try {
        QueryResponse queryResponse = this.solrServer.query(solrQuery);

        return this.factory.createSearchResults(query, queryResponse, true);

    } catch (SolrServerException e) {
        throw new SearchException(e);
    }
}

From source file:de.fhg.iais.cortex.search.SearcherTest.java

License:Apache License

@Test
public void testMoreLikeThis() throws SolrServerException {
    this.query.setMoreLikeThisFields("affiliate_fct label");

    when(this.mockMLTSearchParams.getMltMinDocFrequency()).thenReturn(100);
    when(this.mockMLTSearchParams.getMltMinTermFrequency()).thenReturn(4);
    when(this.mockMLTSearchParams.getMltMinWordLength()).thenReturn(10);
    when(this.mockMLTSearchParams.isMltBoost()).thenReturn(true);
    when(this.mockMLTSearchParams.getMltMaxQueryTerms()).thenReturn(10);
    when(this.mockMLTSearchParams.getMltMaxTokensParsed()).thenReturn(10);
    when(this.mockMLTSearchParams.getMltSimilarFields()).thenReturn("");

    this.searcher.moreLikeThis(this.query);

    Mockito.verify(this.mockMltQueryBuilder).setParameter(MoreLikeThisParams.MIN_DOC_FREQ, 100);
    Mockito.verify(this.mockMltQueryBuilder).setParameter(MoreLikeThisParams.MIN_TERM_FREQ, 4);
    Mockito.verify(this.mockMltQueryBuilder).setParameter(MoreLikeThisParams.MIN_WORD_LEN, 10);
    Mockito.verify(this.mockMltQueryBuilder).setParameter(MoreLikeThisParams.MAX_QUERY_TERMS, 10);
    Mockito.verify(this.mockMltQueryBuilder).setParameter(MoreLikeThisParams.MAX_NUM_TOKENS_PARSED, 10);
    Mockito.verify(this.mockMltQueryBuilder).setParameter(MoreLikeThisParams.SIMILARITY_FIELDS,
            "affiliate_fct label");
    Mockito.verify(this.mockMltQueryBuilder).addExcludingFilterQueries(this.query.getExclusions());
    Mockito.verify(this.mockMltQueryBuilder).build();

    Mockito.verify(this.serverMock).query(Matchers.any(SolrQuery.class));
    Mockito.verify(this.factoryMock).createSearchResults(this.query, this.responseMock, true);

}