0
下面是從Solr的指數的json響應,Lucene搜索返回相同的值兩次
> <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>
以檢索這個細節我寫了下面的Lucene搜索我框下面的查詢,
+entityType:hotelInfo +(propertyId:100003) +(marketerId:PEGASUS) +(chainCode:UZ) +(+propertyName:bella +propertyName:vista*) +(disableReasonId:P disableReasonId:C disableReasonId:A)
但它給了兩次相同的結果。
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);
}
我只加負責過濾,如果我得到它的代碼部分是創建多個結果,並幫助糾正它property-name.It將是非常有用的部分。
問候, 拉加
這應該是正確的答案,您可能已經將兩次相同的文檔插入solr核心。 – jeorfevre
感謝您的回答,實際上我驗證了從搜索查詢返回的scoreDoc []數組,它本身包含2個結果。附上screenshto以供參考。 – Raghavan
如果您注意到分數相同,這意味着您已經添加了相同的文檔兩次。並且都收到了不同的文件ID,這是預期的。 –