/** * Builds a MoreLikeThis query for the specified luceneId over the * specified text field. * * @param fieldName * @param luceneId * @return * @throws DaoException */ public QueryBuilder setMoreLikeThisQuery(String fieldName, int luceneId) throws DaoException { if (luceneId >= 0) { try { MoreLikeThis mlt = new MoreLikeThis(searcher.getReaderByLanguage(language)); mlt.setMaxDocFreqPct(maxPercentage); mlt.setMaxQueryTerms(maxQueryTerms); mlt.setMinDocFreq(minDocFreq); mlt.setMinTermFreq(minTermFreq); mlt.setAnalyzer(searcher.getAnalyzerByLanguage(language)); mlt.setFieldNames(new String[]{ fieldName }); query = mlt.like(luceneId); } catch (IOException e) { LOG.warn("Can't more like this query for luceneId: " + luceneId); } } else { throw new IllegalArgumentException("Illegal Lucene ID: " + luceneId); } return this; }