【问题标题】:Highlight every match with Solr 6, Python 3 and pysolr使用 Solr 6、Python 3 和 pysolr 突出显示每场比赛
【发布时间】:2016-10-16 23:53:04
【问题描述】:

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

这里是代码部分:

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

我做错了什么?

【问题讨论】:

    标签: python solr highlight pysolr


    【解决方案1】:

    您可能希望 hl.fragments 参数(来自 the Highlighting wiki page)有一个非常大(或 0)的值:

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

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

    【讨论】:

    • 谢谢!通过以下查询,我得到了大量结果:{ 'hl':'true', 'hl.fragsize': 100, 'hl.fl': 'fulltext', 'hl.maxAnalyzedChars': 1000000, 'hl.snippets': 1000, })
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-12
    • 2014-04-05
    • 2018-04-05
    • 2021-03-06
    • 2021-11-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多