use of won.matcher.solr.query.factory.BasicNeedQueryFactory in project webofneeds by researchstudio-sat.
the class SolrMatcherQueryTest method main.
public static void main(String[] args) throws IOException, InterruptedException, JsonLdError, SolrServerException {
AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(SolrTestAppConfiguration.class);
HintBuilder hintBuilder = ctx.getBean(HintBuilder.class);
// DefaultMatcherQueryExecuter queryExecutor = ctx.getBean(DefaultMatcherQueryExecuter.class);
TestMatcherQueryExecutor queryExecutor = ctx.getBean(TestMatcherQueryExecutor.class);
// set the options of the need producer (e.g. if it should exhaust) in the SolrNeedIndexerAppConfiguration file
NeedProducer needProducer = ctx.getBean(RoundRobinCompositeNeedProducer.class);
while (!needProducer.isExhausted()) {
// && needs < 20) {
Dataset ds = needProducer.create();
try {
TestNeedQueryFactory needQuery = new TestNeedQueryFactory(ds);
String query = needQuery.createQuery();
System.out.println("execute query: " + query);
SolrDocumentList docs = queryExecutor.executeNeedQuery(query, null, new BasicNeedQueryFactory(ds).createQuery());
SolrDocumentList matchedDocs = hintBuilder.calculateMatchingResults(docs);
System.out.println("Found docs: " + ((docs != null) ? docs.size() : 0) + ", keep docs: " + ((matchedDocs != null) ? matchedDocs.size() : 0));
if (docs == null) {
continue;
}
System.out.println("Keep docs: ");
System.out.println("======================");
for (SolrDocument doc : matchedDocs) {
String score = doc.getFieldValue("score").toString();
String matchedNeedId = doc.getFieldValue("id").toString();
System.out.println("Score: " + score + ", Id: " + matchedNeedId);
}
System.out.println("All docs: ");
System.out.println("======================");
for (SolrDocument doc : docs) {
String score = doc.getFieldValue("score").toString();
String matchedNeedId = doc.getFieldValue("id").toString();
System.out.println("Score: " + score + ", Id: " + matchedNeedId);
}
} catch (SolrException e) {
System.err.println(e);
}
}
System.exit(0);
}
use of won.matcher.solr.query.factory.BasicNeedQueryFactory in project webofneeds by researchstudio-sat.
the class SolrMatcherEvaluation method computeMatchingNeeds.
private List<String> computeMatchingNeeds(Dataset need) throws IOException, SolrServerException {
TestNeedQueryFactory needQuery = new TestNeedQueryFactory(need);
SolrDocumentList docs = queryExecutor.executeNeedQuery(needQuery.createQuery(), null, new BasicNeedQueryFactory(need).createQuery());
SolrDocumentList matchedDocs = hintBuilder.calculateMatchingResults(docs);
List<String> matchedNeeds = new LinkedList<>();
for (SolrDocument doc : matchedDocs) {
String matchedNeedId = doc.getFieldValue("id").toString();
matchedNeeds.add(matchedNeedId);
}
return matchedNeeds;
}
Aggregations