> <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的部分。如果我得到哪部分代码可以创建多个结果并帮助纠正它,那将非常有用。
此致 拉加
答案 0 :(得分:0)
我没有足够的声誉发表评论,因此必须回答。
首先,让我们确保您没有将相同的文档两次添加到索引中。 文档有Id。也打印文档ID。
如果两个文档具有不同的ID,则您已插入两次相同的文档。
如果Ids相同,我们将不得不深入挖掘。