Apache Solr查询无法正常工作

时间:2017-05-03 19:47:12

标签: java solr

查询无法使用HttpSolrClient.query(core, query)

核心:apparel-Product

查询:q=autosuggest_en:cap&qt=/suggest&spellcheck.dictionary=en&spellcheck.q=cap

回复:{responseHeader={status=0,QTime=1},spellcheck={suggestions={},collations={}}}

但同样的查询从网址

获取休息结果

http://localhost:8983/solr/apparel-Product/select?indent=on&q=autosuggest_en:cap&qt=/suggest&spellcheck.dictionary=en&spellcheck.q=cap&wt=json

2 个答案:

答案 0 :(得分:0)

你的意思是你传递了一个像

这样的字符串
q=autosuggest_en:cap&qt=/suggest&spellcheck.dictionary=en&spellcheck.q=cap

在查询对象中?你不能这样做,你需要单独设置其他参数(qt,拼写检查等)。

例如,请查看this method,并查看一些示例。

答案 1 :(得分:0)

您无法将Solr查询参数传递给SolrQuery对象,因为它们在查询字符串中连接它们,请使用SolrQuery对象方法。

此示例应符合您的要求:

SolrClient client = new HttpSolrClient("http://my-solr-server:8983/solr");

SolrQuery solrQuery = new SolrQuery();

solrQuery.setQuery("utosuggest_en:cap"); // q parameter
solrQuery.setRequestHandler("/suggest"); // qt parameter
solrQuery.setParam("spellcheck.dictionary", "en"); // spellcheck.dictionary parameter
solrQuery.setParam("spellcheck.q", "cap"); // spellcheck.dictionary parameter

client.query("apparel-Product", solrQuery)