2010-10-28 13 views
0

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?

Répondre

0

veuillez ne pas tenir compte de cela. il y avait un défaut dans ma logique que je appliquais à l'arrière. merci de regarder