Мне нужен мой анализатор запросов, чтобы читать только те поля, которые являются «текстовыми».
например, скажем, мой запрос:
текст: "эта лиса" ИЛИ название: "коричневая собака"
для подсветки мне нужен парсер / поисковик для поиска только по тексту: часть "этой лисы".
в 2.4 это работало нормально, но после обновления до 2.9.3 что-то изменилось.
пример кода:
IndexSearcher is = new IndexSearcher(fsDir);
QueryParser qp = new QueryParser("text", new StandardAnalyzer(nostop));
qp.setMultiTermRewriteMethod(MultiTermQuery.SCORING_BOOLEAN_QUERY_REWRITE);
Query queryDiv;
try {
query = is.rewrite(queryParser.parse(query_str));
}
catch (ParseException e) {
pw.print("error: Incorrect query format");
pw.close();
return;
}
Hits hits = is.search(queryDiv, sort);
QueryScorer scorer = new QueryScorer(query, "text");
по какой-то неизвестной для меня причине, lucene 2.9.3 теперь не показывает результатов, когда в 2.4 он сделал, так как игнорирует поля, которых не было в документе, не говоря уже о том, что там есть условие ИЛИ. *
есть идеи?