Lucene (5.4.1) MoreLikeThis를 사용하여 텍스트를 태그 지정 (분류)하려고합니다. 일종의 일이지만 좋지 않은 결과를 얻고 있습니다. 문제는 Query 개체와 관련이 있다고 생각합니다.Lucene이 검색어를 제한하고 있습니다.
예제에서는 작동하지만 최상위 topdoc은 예상 한 것이 아닙니다. 쿼리 개체를 디버깅하면 content:erro
만 표시됩니다. 완전한 포르투갈어 구문 (예제를 참조하십시오)에서 쿼리는 단 한 단어로 구성되었습니다.
나는 스톱 워드 또는 다른 종류의 필터를 사용하지 않습니다.
왜 lucene은 쿼리 용어로 에로만을 선택합니까?
는
try (IndexReader idxReader = DirectoryReader.open(indexDir)) {
IndexSearcher indexSearcher = new IndexSearcher(idxReader);
MoreLikeThis mlt = new MoreLikeThis(idxReader);
mlt.setMinTermFreq(0);
mlt.setMinDocFreq(0);
mlt.setFieldNames(new String[] { "content" });
mlt.setAnalyzer(analyzer);
Reader sReader = new StringReader("Melhorias no controle de sessão no sistema qquercoisa quando expira, ao logar novamente no sistema é exibido o erro "xpto");
Query query = mlt.like("content", sReader);
TopDocs topDocs = indexSearcher.search(query, 3);
}