2012-11-14 30 views
3

我正在使用Solr示例服务器进行调查。提供所有缓存文件后,主要是HTML文件,除了高亮部分外,它工作正常。无法获得突出显示Solr响应

我使用的请求URL作为其次,

http://localhost:8983/solr/collection1/select?q=keyword&wt=xml&hl=true 

,并为接下来的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> 

的反应,无论是JSON或XML,有重要的部分。我检查了本地文件系统和示例服务器的管理页面中的solrconfig.xml。突出显示为默认打开并且前/后设置为“”/“”。示例搜索门户本身在其结果中突出显示的情况下正常工作。但由于它不是AJAX,因此我无法通过Chrome查看其结果。

我做错了什么?

回答

7

您必须使用hl.fl来定义需要突出显示的字段。举例来说,如果你要搜索和亮点content场命中,您可以使用下面的查询:

http://localhost:8983/solr/collection1/select?q=content:keyword&wt=xml&hl=true&hl.q=content:keyword&hl.fl=content 

默认情况下凸显响应只返回一个片段,即使你的领域有多个命中。此外,片段的长度(fragsize)默认设置为100个字符。

您可以使用hl.snippetshl.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 

传递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 

参见solr wiki为多个参数。

+0

感谢您的简单例子。正是我需要的。 –

1

您需要添加需要启用突出显示的字段hl.fl
参数的默认值为空。