J'ai besoin de mon analyseur de requête pour lire seulement les champs qui sont "texte". Par exemple, disons que ma requête est: texte: "ce renard" OU titre: "chien marron" pour des fins de surlignage, j'ai besoin de l'analyseur/chercheur pour rechercher uniquement en utilisant le texte: partie "ce renard". dans 2.4 cela a bien fonctionné, mais depuis la mise à niveau vers 2.9.3, quelque chose a changé.requête Lucene praser, seulement lire une certaine requête de champs, le comportement a changé dans 2.9.3
exemple de code:
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");
pour une raison quelconque, inconnu pour moi, Lucene 2.9.3 montre maintenant aucun résultat quand à 2.4 il l'a fait, comme il a ignoré les champs du document n'a pas eu, sans parler qu'il y a une condition OU là-dedans.
des idées?