Solr将使用Highlighter而不是FastVectorHighlighter警告

时间:2015-01-28 16:54:26

标签: solr highlighting solr4 sunspot-rails sunspot-solr

您好我正在使用Solr 4.1搜索引擎开发rails app,

当我向searchSolr添加突出显示时,使用此警告开始使用tomcat6日志进行spaming:

Jan 29, 2015 12:13:38 PM org.apache.solr.highlight.DefaultSolrHighlighter useFastVectorHighlighter
WARNING: Solr will use Highlighter instead of FastVectorHighlighter because *Field_Name* field does not store TermPositions and TermOffsets.

schema.xml中的字段示例:

<field name="name" type="text" indexed="true" stored="true" multiValued="true"/>

我在文档中找到了什么:

标准荧光笔是荧光笔的瑞士军刀。它具有三个荧光笔中最复杂和细粒度的查询表示。例如,即使对于高级查询器(例如环绕声分析器),该高亮显示器也能够提供精确匹配。它不需要任何特殊的数据结构,如termVectors,但如果它们存在,它将使用它们。如果不是这样,这个荧光笔将动态重新分析文档以突出显示它。这种荧光笔是各种搜索用例的不错选择。 FastVector荧光笔

FastVector荧光笔需要字段上的术语向量选项(termVectors,termPositions和termOffsets),并在此时进行了优化。它比标准突出显示器更适用于更多语言,因为它支持Unicode分类符。另一方面,它的查询表示不如标准突出显示器先进:例如,它不适用于环绕声解析器。这款荧光笔是大型文档和以各种语言突出显示文本的理想选择。

FastVector突出显示提供更快的搜索:http://solr.pl/en/2011/06/13/solr-3-1-fastvectorhighlighting/

但Highlighting和FastVectorHighlighting的配置有何不同?

当我将Highlighting更改为FastVectorHighlighting时,用户是否会看到搜索结果的差异?

打开FastVectorHighlighting我需要做的就是将termVectors="on" termPositions="on" termOffsets="on"/>添加到schema.xml中的每个字段中?像:

<field name="name" type="text" indexed="true" stored="true" multiValued="true" termVectors="on" termPositions="on" termOffsets="on"/>

我也在Solr文档中发现了这个问题:https://issues.apache.org/jira/browse/SOLR-5544

但我仍然不知道如何修复警告,导致我的日志文件大小每秒增加500 MB!这很关键,因为如果卷上没有空闲空间,seach服务器就会停止。

请帮助。

1 个答案:

答案 0 :(得分:2)

我在schema.xml中找到了字段,其中包含termVectors="true"属性,但没有termPositions="true" termOffsets="true"

这是警告的原因。

所以,我做了什么:

  • termPositions="true" termOffsets="true"添加到schema.xml中的字段,只有termVectors="true"属性
  • termVectors="true" termPositions="true" termOffsets="true"添加到我在警告中找到的每个字段中:(&#34; ...现场电话不存储位置和偏移...&#34;例如。)

我运行重建索引后,但它没有修复日志中的垃圾邮件警告。

此问题的原因 - Sold未看到schema.xml更新,而tomcat未重新启动。

所以,我重新启动tomcat:

  • sudo /etc/init.d/tomcat6 restart

  • 我重新开始重新索引,导致所有突出显示丢失

非常感谢@chefe的帮助!