有 SolrJ 查询生成器吗?
Posted
技术标签:
【中文标题】有 SolrJ 查询生成器吗?【英文标题】:Is there a SolrJ query builder? 【发布时间】:2017-07-12 13:19:06 【问题描述】:使用 solr 5.2.0 想知道是否有类似于 Elasticsearch 查询构建器 API 的查询构建器 API/Jar/Ckient 或者我们是否必须基本上做字符串功夫才能在 Solr 中构建查询?
【问题讨论】:
solrtutorial.com/lucene-query-builder.html 是你要找的吗? 任何 API/SDK/jar 我想我们可以直接使用 lucene 查询构建器类。 【参考方案1】:您可能想use SolrQuery
SolrQuery solrQuery=new SolrQuery();
solrQuery.set("q",query);
solrQuery.set("rows",5000);
QueryResponse response=solrServers.query(solrQuery);
更多示例请参考link
【讨论】:
我知道。但是查询仍然必须使用字符串连接来构建......我正在寻找一个构建器样式的 API。好像spring有东西,但是不想用spring。到目前为止,它似乎不存在。【参考方案2】:不幸的是,在 SolrJ 中,对于进入 q
-Parameter 的查询,没有构建器之类的东西。
但是:由于 Solr 已经在 Lucene 上运行,我们也可以使用 Lucene QueryBuilder。生成的 Query 对象(例如 PhraseQuery)有一个 toString()
方法,该方法为您提供查询字符串,否则您必须手动组装。
【讨论】:
@seven.windisch 你能发一些例子吗 在***.com/questions/25841494/… 中,有人反过来问了这个问题(查询字符串到查询对象)。这个问题在这里包含了我们案例的一个很好的例子。 请注意,lucene Query 实例可与术语一起使用,但在客户端您没有 FieldTypes/analyzer。可能灵活的 QueryParser 是更好的选择QueryNode。但我也看不到用这种语法树构建嵌套查询的方法。以上是关于有 SolrJ 查询生成器吗?的主要内容,如果未能解决你的问题,请参考以下文章