我有如下 solr json 响应,
{
"stateOrProvinceId":"TN",
"entityType":"hotelInfo",
"chainCode":"SM",
"marketerName":"InnLink",
"propertyId":"4380",
"marketerId":"INNLINK",
"propertyStatus":"Active",
"chainName":"Innlink",
"propertyName":"Value Place Memphis NE",
"countryCode":"US"},
{
"entityType":"hotelInfo",
"chainCode":"GT",
"marketerName":"Golden Tulip",
"propertyId":"69170",
"marketerId":"GOLDENT",
"propertyStatus":"Active",
"chainName":"Golden Tulip Hotels",
"propertyName":"Tulip Inn Sunny Hill",
"countryCode":"RO"},
{
"stateOrProvinceId":"TN",
"entityType":"hotelInfo",
"chainCode":"BW",
"marketerName":"Best Western",
"propertyId":"85336",
"marketerId":"BESTWEST",
"propertyStatus":"Active",
"chainName":"Best Western Intl",
"propertyName":"BEST WESTERN Brentwood",
"countryCode":"US"},
{
"entityType":"amenitiesInfo",
"propertyId":"69170",
"amenitiesInfoAttrId":"AC"},
我们正在搜索我们使用以下布尔查询的特定属性 id,
BooleanQuery booleanQuery = new BooleanQuery();
booleanQuery.add(new TermQuery(new Term("propertyId", pid)), BooleanClause.Occur.SHOULD);
给出以下响应,
{
"entityType":"hotelInfo",
"chainCode":"GT",
"marketerName":"Golden Tulip",
"propertyId":"69170",
"marketerId":"GOLDENT",
"propertyStatus":"Active",
"chainName":"Golden Tulip Hotels",
"propertyName":"Tulip Inn Sunny Hill",
"countryCode":"RO"},
{
"entityType":"amenitiesInfo",
"propertyId":"69170",
"amenitiesInfoAttrId":"AC"},
现在我需要一个查询来获取没有设施信息的酒店信息。
提前感谢您的帮助。拉加万
我不知道
我是否正确,据我所知,您想根据两个条件构建查询:pid 和 entityType,如果您想这样做,您应该将另一个 TermQuery 添加到实体类型的布尔查询中,您应该尝试如下:
BooleanQuery booleanQuery = new BooleanQuery();
booleanQuery.add(new TermQuery(new Term("propertyId", pid)), BooleanClause.Occur.SHOULD);
booleanQuery.add(new TermQuery(new Term("entityType", "hotelInfo")), BooleanClause.Occur.SHOULD);