我有以下查询:
{!join from=conceptNcid to=ncid fromIndex=hdd_rel_tst}relationshipNcid:364
我在Spring中实现的:
SimpleQuery search = new SimpleQuery(new SimpleStringCriteria("*:*"), pageable);
Criteria criteria = new Criteria("relationshipNcid").is("364");
SimpleFilterQuery fq = new SimpleFilterQuery(criteria);
fq.setJoin(Join.from("conceptNcid").fromIndex("hdd_rel_tst").to("ncid"));
search.addFilterQuery(fq);
Page<T> results = solrTemplate.queryForPage(search, myclass);
此查询效果很好。但是,当我试图否定查询时:
-{!join from=conceptNcid to=ncid fromIndex=hdd_rel_tst}relationshipNcid:364
使用此代码:
SimpleQuery search = new SimpleQuery(new SimpleStringCriteria("*:*"), pageable);
Criteria criteria = new Criteria("relationshipNcid").is("364").not();
SimpleFilterQuery fq = new SimpleFilterQuery(criteria);
fq.setJoin(Join.from("conceptNcid").fromIndex("hdd_rel_tst").to("ncid"));
search.addFilterQuery(fq);
Page<T> results = solrTemplate.queryForPage(search, myclass);
它不起作用。注意我把'not()'放在第二行。我知道这是错误的地方,但我看不出如何在java代码中否定整个查询。有什么想法吗?