1

我有这个 Solr 索引,其中包含大量相当长的文本文件,并使用text_sv架构进行索引。我想为每个索引文档打印出每个片段。但是,我只检索了几个,即使我已经尝试操作文档中指定的各种设置。

这是代码部分:

results = solr.search(search_string, rows = result_limit, sort = order,
            **{
                'hl':'true',
                'hl.fragsize': 100,
                'hl.fl': 'fulltext',
                'hl.maxAnalyzedChars': -1,
                'hl.snippets': 100,
                })
resultcounter = 0
for result in results:
    resultcounter += 1
    fulltexturl = '<a href="http://localhost/source/\
    ' + result['filename'] + '">' + result['filename'][:-4] + '</a>'
    year = str(result['year'])
    number = str(result['number'])
    highlights = results.highlighting
    print("Saw {0} result(s).".format(len(results)))
    print('<p>' + str(resultcounter) + '. <b>År:</b> ' + year + ', <b>Nummer\
            : </b>' + number +' ,<b>Fulltext:</b> ' + fulltexturl + '. <b>\
            </b> träffar.<br></p>')
    inSOUresults = 1
    for idnumber, h in highlights.items():
        for key, value in h.items():
            for v in value:
                print('<p>' + str(inSOUresults) + ". " +  v + "</p>")
                inSOUresults += 1

我究竟做错了什么?

4

1 回答 1

0

您可能需要一个非常大(或 0)的hl.fragments参数值(来自Highlighting wiki 页面):

使用原始荧光笔,如果您有一个用例需要突出显示字段的完整文本并且需要突出显示搜索词的每个实例,您可以将 hl.fragsize 设置为一个非常高的值(无论需要什么包含该字段最大值的所有文本),例如 &hl.fragsize=50000。

但是,如果要将 fragsize 更改为大于 51200 的值以返回带有突出显示的长文档文本,则还需要将相同的值传递给 hl.maxAnalyzedChars 参数。这两个参数齐头并进,仅更改 hl.fragsize 不足以在非常大的字段中突出显示。

于 2016-06-15T19:46:26.777 回答