我目前正在研究 solr,在其中创建一个连接,我需要写
http://localhost:8983/solr/select?q=category_name:cat1%20_query_:"{!dismax%20qf=category_name%20v=cat2}"
其中 cat1 和 cat2 是我希望我的产品所在的类别,即所有具有这两个类别的产品。
我使用它得到了准确的结果,我可以找到如何使用 SolrJ api 在 Java 中编写相同的结果
我在做什么
String myQuery = "";
myQuery += "category_name:";
myQuery += categoryNames.get(0);
myQuery += "%20_query_:\"{!dismax%20qf=category_name%20v=";
myQuery += categoryNames.get(1);
myQuery += "}\"";
query.setQuery(myQuery);
这没有给出soln,solr给出错误
现在根据第 1 页
SolrQuery query = new SolrQuery();
query.setQuery("category_name:" + categoryNames.get(0));
String join = "";
join += "{!dismax&qf=category_name&v=";
join += categoryNames.get(1);
join += "}";
query.setParam("_query_", join);
QueryResponse response = solr.query(query);
更好但仍然不起作用,附加我不想要的“&”,从那时起输出是错误的,这是 wat 到 solr 进行处理,结果仅基于“cat1”,而不是两者的 AND
q=category_name:cat1&_query_={!dismax%26qf%3Dcategory_name%26v%3Dcat2}
3rd,尝试了最新答案中建议的 wat 页面,惨遭失败这是 wat 去 solr 进行处理,这里的工作方式类似于 OR 运算符而不是 AND
q=category_name:cat1+_query_:"{!dismax+qf%3Dcategory_name+v%3Dcat2}"
PS:我需要找到关于如何编写myQuery的解决方案,请帮助,坚持下去
它终于解决了,嵌套 += " AND query :\"{!dismax qf=category_name v="; 是我的问题的解决方案
现在查询得到处理!谢谢