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==\")"));