solrj returns 不同查询结果相同
solrj returns the same result for different queries
这是我的代码:-
SolrClient client = new HttpSolrClient.Builder("http://arlmsendeavour01:8983/solr/ImageMatch").build();
SolrQuery query = new SolrQuery();
query.setRequestHandler("/select");
//System.currentTimeMillis();
String q = "{!cache=false}*:*&debugQuery=true&sort=lirefunc(eh,\"opKg0dKEtZOSsaSBkfPChsTEopGykqHExYTEw5GylbKx8KKXkqHRww==\")+asc";
query.setQuery("q");
QueryResponse response = null;
try {
response = client.query(query);
} catch (SolrServerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
SolrDocumentList results = response.getResults();
for (int i = 0; i < results.size(); ++i) {
System.out.println(results.get(i)/*.getFieldValue("id")*/);
}
我正在使用函数查询 lirefunc,其中第一个参数定义它是颜色、边缘还是纹理,第二个参数是从图像中提取的特征。每次我 运行 即使是针对不同图像和不同特征的代码,我都会得到相同的输出,就好像它是从 solr xml 中提取的一样。对于所有类型的查询,输出保持不变。我哪里错了?
query.setQuery("q");
- 这会将查询设置为字符串 "q"
。我敢肯定那不是你想做的。
setQuery
方法也不用于设置查询字符串 - 它用于将 q
参数(查询)中存在的任何内容设置为 Solr。
有separate methods for each part of the request to Solr in SolrJ.
要设置 sort=
参数,请使用 addSort:
query.addSort(SortClause.desc("lirefunc(eh,\"opKg0dKEtZOSsaSBkfPChsTEopGykqHExYTEw5GylbKx8KKXkqHRww==\")"));
这是我的代码:-
SolrClient client = new HttpSolrClient.Builder("http://arlmsendeavour01:8983/solr/ImageMatch").build();
SolrQuery query = new SolrQuery();
query.setRequestHandler("/select");
//System.currentTimeMillis();
String q = "{!cache=false}*:*&debugQuery=true&sort=lirefunc(eh,\"opKg0dKEtZOSsaSBkfPChsTEopGykqHExYTEw5GylbKx8KKXkqHRww==\")+asc";
query.setQuery("q");
QueryResponse response = null;
try {
response = client.query(query);
} catch (SolrServerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
SolrDocumentList results = response.getResults();
for (int i = 0; i < results.size(); ++i) {
System.out.println(results.get(i)/*.getFieldValue("id")*/);
}
我正在使用函数查询 lirefunc,其中第一个参数定义它是颜色、边缘还是纹理,第二个参数是从图像中提取的特征。每次我 运行 即使是针对不同图像和不同特征的代码,我都会得到相同的输出,就好像它是从 solr xml 中提取的一样。对于所有类型的查询,输出保持不变。我哪里错了?
query.setQuery("q");
- 这会将查询设置为字符串 "q"
。我敢肯定那不是你想做的。
setQuery
方法也不用于设置查询字符串 - 它用于将 q
参数(查询)中存在的任何内容设置为 Solr。
有separate methods for each part of the request to Solr in SolrJ.
要设置 sort=
参数,请使用 addSort:
query.addSort(SortClause.desc("lirefunc(eh,\"opKg0dKEtZOSsaSBkfPChsTEopGykqHExYTEw5GylbKx8KKXkqHRww==\")"));