【发布时间】:2017-08-23 07:40:48
【问题描述】:
我使用 solr 6.5 创建了新的 Rest API。请找到以下步骤 1. 带有查询参数的自定义搜索处理程序
<requestHandler name="/select" class="com.test.solr.TestSearchHandler" default="true">
<lst name="defaults">
<str name="wt">json</str>
<str name="indent">true</str>
<str name="fl">test1,test2</str>
<str name="df">acSearch</str>
<str name="sort">score desc</str>
</lst>
<arr name="components">
<str>query</str>
</arr>
自定义类具有以下功能
private ModifiableSolrParams createNewSolrParams(SolrQueryRequest request) {
SolrParams oldParams = request.getParams();
ModifiableSolrParams newParams = new ModifiableSolrParams(oldParams);
setUpQueryExpression(newParams, oldParams);
return newParams;
}
private void setUpQueryExpression(ModifiableSolrParams newParams, SolrParams oldParams) {
String query = oldParams.get("query");
newParams.remove("query");
newParams.set(CommonParams.Q, query);
}
它适用于以下网址,我得到了回应
http://localhost:8330/autocomplete-service/core_autocomplete/select?query=test1:Airport*
但不适用于以下网址
http://localhost:8330/nghp-autocomplete-service/nghp_autocomplete/select?query=Airport*
如何避免查询中的键值对
工作查询=test1:Airport* 需要查询=机场*
正在搜索单词而不是短语。 Example Airport 正在搜索 Airport India 正在运行。
请告诉我如何解决。
【问题讨论】:
-
您还应该发布自定义搜索处理程序的来源
TestSearchHandler -
我也建议改进你的问题,因为不清楚你的目标是什么
-
您的机场数据是什么样的?你试过像
Airpor*这样的查询吗?
标签: java solr lucene solrj solr4