我正在使用Solr示例服务器进行调查.在用所有缓存的文档(主要是html文件)提供它之后,除了高亮部分之外它工作正常.
我正在使用的请求URL如下,
http://localhost:8983/solr/collection1/select?q=keyword&wt=xml&hl=true
Run Code Online (Sandbox Code Playgroud)
并且XML响应如下,
<response>
<lst name="responseHeader">...</lst>
<result name="response" numFound="371" start="0">
    <doc>
        <arr name="links">
            <str>rect</str>
            <str>FJU_KDJFJJ_DJ_13</str>
        </arr>
        <str name="id">
            F:\SkyDrive\funproj\cache\adfadf\asdff.htm
        </str>
        <arr name="title">
            <str>asdff.htm</str>
        </arr>
        <arr name="content_type">
            <str>text/html; charset=ISO-8859-1</str>
        </arr>
        <str name="resourcename">
            F:\SkyDrive\funproj\cache\adfadf\asdff.htm
        </str>
        <arr name="content">
            <str>...</str>
        </arr>
        <long name="_version_">1418589758873927680</long>
    </doc>
    <doc>...</doc>
</result>
<lst name="highlighting">
    <lst name="F:\SkyDrive\funproj\cache\adfadf\asdff.htm"/>
    <lst name="F:\SkyDrive\funproj\cache\cvzcv\c58053e10vq.htm"/>
    <lst name="F:\SkyDrive\funproj\cache\hgdfhdfgh\c00302e10vq.htm"/>
    <lst name="F:\SkyDrive\funproj\cache\asdfasdf\c00945e10vq.htm"/>
    <lst name="F:\SkyDrive\funproj\cache\hjmyukt\asfdf06113002_03312010.htm"/>
    <lst name="F:\SkyDrive\funproj\cache\nmvbmnm\saf0q033111.htm"/>
    <lst name="F:\SkyDrive\funproj\cache\lkiullkl\a10-5974_110q.htm"/>
    <lst name="F:\SkyDrive\funproj\cache\jhlhjkl\fdfinal.htm"/>
    <lst name="F:\SkyDrive\funproj\cache\vcbxcbvcx\zynex10q33110_5132010.htm"/>
    <lst name="F:\SkyDrive\funproj\cache\yuiuiou\v185403_10q.htm"/>
</lst>
</response>
Run Code Online (Sandbox Code Playgroud)
无论是JSON还是XML,响应都没有突出显示部分.我已经在本地文件系统和示例服务器的管理页面中检查了solrconfig.xml.突出显示默认开启,前/后设置为" "/" ".示例搜索门户本身在其结果中突出显示正常.但由于它不是AJAX,我无法通过chrome检查其结果.
我做错了什么?
您必须定义hl.fl需要突出显示的字段.例如,如果要在content字段中搜索并突出显示匹配,可以使用以下查询:
http://localhost:8983/solr/collection1/select?q=content:keyword&wt=xml&hl=true&hl.q=content:keyword&hl.fl=content
Run Code Online (Sandbox Code Playgroud)
默认情况下,突出显示响应仅返回一个片段,即使您的字段有多个匹配也是如此.此外,片段(fragsize)的长度默认设置为100个字符.
您可以使用hl.snippets和hl.fragsize修改它们.
例如,要修改fragsize:
http://localhost:8983/solr/collection1/select?q=content:keyword&wt=xml&hl=true&hl.q=content:keyword&hl.fl=content&hl.fragsize=5000
Run Code Online (Sandbox Code Playgroud)
传递hl.fragsize=0将使fragsize无限.
要更改片段数量:
http://localhost:8983/solr/collection1/select?q=content:keyword&wt=xml&hl=true&hl.q=content:keyword&hl.fl=content&hl.snippets=10
Run Code Online (Sandbox Code Playgroud)
有关更多参数,请参阅solr wiki.