我使用的是solr 7.7.2,我使用solrj在Solr中编写了一个Java程序,该程序在巨大的文本文件中搜索单词。我使用以下代码显示代表全文的搜索结果。
SolrQuery params = new SolrQuery();
params.setQuery("content:word for search");
如何只显示一行中的单词?
所有代码都是这样
public static void main(String args[]) throws SolrServerException, IOException
{
String urlString = "http://localhost:8983/solr/test_core";
SolrClient Solr = new HttpSolrClient.Builder(urlString).build();
SolrQuery params = new SolrQuery();
params.setQuery("content:word for search");
params.setSort("score", SolrQuery.ORDER.desc);
QueryResponse queryResponse = Solr.query(params);
SolrDocumentList result = queryResponse.getResults();
for (int i = 0 ; i < result.size(); i++ )
{
System.out.println(result.get(i) + " \n");
}
}
Highlighting
是solr功能之一。您必须传递查询参数以实现突出显示,如下所示:-
hl
–设置为true,它使查询响应中生成突出显示的代码段。
hl.fl
–提及要突出显示的字段列表。 char *将突出显示所有字段
hl.fragsize
–荧光笔创建的摘录(又称片段)的大小(以字符为单位)。在原始荧光笔中,“ 0”表示应使用整个字段值且没有碎片。默认情况下,片段大小为100个字符
通过添加以下代码进行检查。
params.setHighlight(true).setHighlightSnippets(1);
params.setParam("hl.fl", "*");
params.setParam("hl.fragsize", "0");