2017-06-06 5 views
0

enter image description here Voici ma réponse JSON de l'index Solr,Lucene recherche retour même valeur deux fois

> <doc> <str name="longitudeCoordinate">11.2409</str> <str 
> name="chainName">Pegasus Connect</str> <str 
> name="currencyCode">EUR</str> <str name="entityType">hotelInfo</str> 
> <str name="propertyName">BELLA VISTA</str> <str 
> name="chainCode">UZ</str> <str name="marketerName">Pegasus 
> Solutions</str> <str name="disableReasonId">A</str> <str 
> name="propertyId">100003</str> <str name="marketerId">PEGASUS</str> 
> <str name="propertyStatus">Inactive</str> <str 
> name="latitudeCoordinate">43.77691</str> <str 
> name="countryCode">ES</str> </doc> 

retrive ce détail i écrit la recherche ci-dessous Lucene i formulé la requête ci-dessous,

+entityType:hotelInfo +(propertyId:100003) +(marketerId:PEGASUS) +(chainCode:UZ) +(+propertyName:bella +propertyName:vista*) +(disableReasonId:P disableReasonId:C disableReasonId:A) 

Mais c'est donner les mêmes résultats deux fois.

if (hotelName != null) { 
       StandardAnalyzer analyzer; 
       analyzer = new StandardAnalyzer(Version.LUCENE_46); 
       QueryParser queryParser = new QueryParser (Version.LUCENE_46, "propertyName", analyzer); 
       // queryParser.setAllowLeadingWildcard (true); 
       queryParser.setDefaultOperator(QueryParser.Operator.AND); 
       Query pNameQuery = null; 
       try { 
        pNameQuery = queryParser.parse (hotelName + "*"); 

       } catch (ParseException e) { 

        e.printStackTrace(); 
       } finally { 
        analyzer.close(); 
       } 
       hotelInfoQuery.add (pNameQuery, BooleanClause.Occur.MUST); 
      } 

j'ajouté que la partie responsable de filtrage des property-name.It sera utile si je reçois quelle partie du code est crée plusieurs résultats et aider à y remédier.

Cordialement, Raghavan

Répondre

0

Je n'ai pas assez réputation de commenter, d'où devra répondre.

Commencez par nous assurer que vous n'avez pas ajouté deux fois le même document à l'index. Un document a un ID. Imprimez également l'identifiant de document.

Si les deux documents ont des ID différents, vous avez inséré deux fois le même document.

Si les ID sont identiques, nous devrons creuser plus profondément.

+0

cela devrait être la bonne réponse, vous pourriez avoir inséré deux fois le même document dans votre noyau solr. – jeorfevre

+0

Merci pour la réponse, En fait, j'ai validé le tableau scoreDoc [] retourné à partir de la requête de recherche, qui elle-même contient 2 résultats. Attaché le screenshto pour la référence. – Raghavan

+0

Si vous remarquez que le score est le même, cela signifie que vous avez ajouté deux fois le même document. Et les deux ont reçu un identifiant de document différent, ce qui est comme prévu. –