Lucene запрос Praser, только чтение определенных полей запроса, поведение изменилось в 2.9.3 - PullRequest
0 голосов
/ 28 октября 2010

Мне нужен мой анализатор запросов, чтобы читать только те поля, которые являются «текстовыми».
например, скажем, мой запрос: текст: "эта лиса" ИЛИ название: "коричневая собака" для подсветки мне нужен парсер / поисковик для поиска только по тексту: часть "этой лисы". в 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 он сделал, так как игнорирует поля, которых не было в документе, не говоря уже о том, что там есть условие ИЛИ. *

есть идеи?

1 Ответ

0 голосов
/ 28 октября 2010

пожалуйста, не обращайте на это внимания. в моей логике был недостаток, который я применял к бэкэнду. спасибо за поиск

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...