Я беру приручение текста книгу в качестве примера для добавления пользовательских QueryResponseWriter
в solr. Но это не показано в wt
как tah
Когда я нажимаю на следующий запрос, отображается пустой ответ
http://localhost:8983/solr/collectiona/type-ahead?q=fayes&wt=tah
В моей конфигурации solr я поместил следующий путь к каталогу моей библиотеки
<lib dir="${solr.install.dir:../../../..}/contrib/customresponsewriter" regex=".*\.jar" />
Я создал файл jar для этого, как упомянуто в книге. Вот мой класс Java
public class TypeAheadResponseWriter implements QueryResponseWriter {
private Set<String> fields;
public void write(Writer writer, SolrQueryRequest solrQueryRequest, SolrQueryResponse solrQueryResponse) throws IOException {
SolrIndexSearcher searcher = solrQueryRequest.getSearcher();
NamedList namedList = solrQueryResponse.getValues();
int size = namedList.size();
for (int i = 0; i < size; i++) {
Object val = namedList.getVal(i);
if (val instanceof DocList) {
DocList docList = (DocList) val;
DocIterator docIterator = docList.iterator();
writer.append("<ul>\n");
while (docIterator.hasNext()) {
int id = docIterator.nextDoc();
Document doc = searcher.doc(id, fields);
String name = doc.get("title");
writer.append("<li>" + name + "</li>");
}
writer.append("</ul>\n");
}
}
}
public String getContentType(SolrQueryRequest solrQueryRequest, SolrQueryResponse solrQueryResponse) {
return "text/html;charset=UTF-8";
}
public void init(NamedList namedList) {
fields = new HashSet<String>();
fields.add("title");
}
}
Вот мой конфиг solr для queryResponsewriter
<queryResponseWriter name="tah" class="cqw.TypeAheadResponseWriter"/>
<requestHandler name="/type-ahead" class="solr.SearchHandler">
<lst name="defaults">
<str name="wt">tah</str>
<str name="defType">dismax</str>
<str name="qf">title_prefix_typeahead^1.0</str>
</lst>
</requestHandler>
Пользовательская библиотека загружается во время запуска Solr, вот мой журнал Solr
Добавлено 63 библиотеки в загрузчик классов из путей: [/home/bibek/software/java/solr-7.3.0/contrib/clustering/lib, /home/bibek/software/java/solr-7.3.0/contrib / customresponsewriter, /home/bibek/software/java/solr-7.3.0/contrib/extraction/lib, /home/bibek/software/java/solr-7.3.0/contrib/langid/lib, / home / bibek / программное обеспечение / java / solr-7.3.0 / contrib / speed / lib, /home/bibek/software/java/solr-7.3.0/dist]