2017-02-22 111 views
2

使用solr 5.2.0时想知道是否有一个类似于Elasticsearch查询生成器API的查询生成器API/Jar/Ckient,或者我们是否必须在字符串功能上低音地构建Solr中的查询?是否有SolrJ查询生成器?

+0

是http://www.solrtutorial.com/lucene-query-builder.html你在找什么? –

+0

任何API/SDK/jar – user432024

+0

我想我们可以直接使用lucene查询构建器类。 – user432024

回答

3

不幸的是,在SolrJ有没有这样的事情对于进入q - 参数的查询生成器。

但是:由于Solr已经在Lucene上运行,我们还可以使用Lucene QueryBuilder。生成的查询对象(例如PhraseQuery)有一个toString()方法,该方法为您提供您必须手动组装的查询字符串。

+0

似乎喜欢它:) – user432024

1

你可能想use SolrQuery

SolrQuery solrQuery=new SolrQuery(); 
    solrQuery.set("q",query); 
    solrQuery.set("rows",5000); 
    QueryResponse response=solrServers.query(solrQuery); 

更多的例子,请参阅本link

+0

我知道。但查询仍然需要使用字符串连接构建...我正在寻找一个builder风格的API。看来春天有东西,但不想用春天。目前看来它不存在。 – user432024

0

SolrQuery是隐藏的字符串连接复杂的类,它有很多的方法,有助于构建查询。这个例子显示为使用流畅的界面。

CloudSolrClient client = new CloudSolrClient.Builder() 
              .withZkHost("zookeeper-host:2181") 
              .build(); 
QueryResponse resp = client.query(new SolrQuery() 
            .setRows(10) 
            .setQuery(query) 
            .setFields("title", "manufacturer", "price")); 
+0

但你仍然必须concat查询... https://github.com/maxcnunes/solr-query-builder/blob/master/README.md他们exiat为JavaScript的Java有弹簧标准的Solr,但不使用soring ... – user432024