在Java api中的Solr搜索中需要搜索文本和周围的几行

问题描述 投票:0回答:1

我使用的是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");
        }
    }

java search solr lucene solrj
1个回答
0
投票

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");
© www.soinside.com 2019 - 2024. All rights reserved.