使用Solr 6、Python 3和pysolr突出显示每个匹配项
我有一个Solr索引,它包含大量相当长的文本文件,用使用Solr 6、Python 3和pysolr突出显示每个匹配项,python,solr,highlight,pysolr,Python,Solr,Highlight,Pysolr,我有一个Solr索引,它包含大量相当长的文本文件,用text_svschema索引。我想打印出每个索引文档的每个片段。但是,我只检索了一些设置,尽管我已经尝试按照中的指定操作各种设置 以下是代码部分: results = solr.search(search_string, rows = result_limit, sort = order, **{ 'hl':'true', 'hl.fragsize': 1
text_sv
schema索引。我想打印出每个索引文档的每个片段。但是,我只检索了一些设置,尽管我已经尝试按照中的指定操作各种设置
以下是代码部分:
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
results=solr.search(search\u string,rows=result\u limit,sort=order,
**{
‘hl’:‘true’,
“hl.fragsize”:100,
“hl.fl”:“全文”,
'hl.maxAnalyzedChars':-1,
“hl.snippets”:100,
})
结果计数器=0
对于结果中的结果:
结果计数器+=1
fullTexture=''
年份=str(结果['year'])
number=str(结果['number'])
突出显示=结果。突出显示
打印(“Saw{0}结果”。.format(len(results)))
打印(“”+str(resultcounter)+’。År:“+year+”,numer\
:“+number+”,全文:“+fullTexture+”\
特鲁法尔。
')
InsureResults=1
对于idnumber,突出显示.items()中的h:
对于键,h.items()中的值:
对于v值:
打印(“”+str(inSOUresults)+“+v+””)
InSoureResults+=1
我做错了什么?您可能希望
hl.fragments
参数的值非常大(或0):
使用原始的荧光笔,如果您有一个用例,需要突出显示字段的完整文本,并且需要突出显示搜索词的每个实例,则可以将hl.fragsize设置为非常高的值(包括该字段最大值的所有文本所需的任何条件),例如&hl.fragsize=50000
但是,如果要将fragsize更改为大于51200的值以返回带突出显示的长文档文本,则还需要将相同的值传递给hl.maxAnalyzedChars参数。这两个参数齐头并进,仅更改hl.fragsize不足以在非常大的字段中高亮显示
您可能希望
hl.fragments
参数(从)的值非常大(或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,})
谢谢!通过下面的查询,我得到了大量的结果:{'hl':'true','hl.fragsize':100,'hl.fl':'fulltext','hl.maxAnalyzedChars':1000000,'hl.snippets':1000,})