Solr 将使用 Highlighter 而不是 FastVectorHighlighter 警告

Solr will use Highlighter instead of FastVectorHighlighter warning

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

当我向 searchSolr 添加突出显示时,开始使用以下警告向 tomcat6 日志发送垃圾邮件:

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 Highlighter 需要字段上的术语向量选项(termVectors、termPositions 和 termOffsets),并在考虑到这一点的情况下进行了优化。它往往比标准高亮器适用于更多语言,因为它支持 Unicode breakiterators。另一方面,它的查询表示不如标准荧光笔先进:例如,它不能很好地与环绕解析器一起工作。这款荧光笔是大型文档和高亮显示各种语言文本的不错选择。

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

但是Highlighting和FastVectorHighlighting在配置上有什么区别呢?

当我将突出显示更改为 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!这很关键,因为如果卷上没有空闲 space,搜索服务器将停止。

拜托,帮忙。

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

这是警告的原因。

那么,我做了什么:

  • termPositions="true" termOffsets="true" 添加到 schema.xml 中只有 termVectors="true" 属性的字段
  • 向我在警告中找到的每个字段添加 termVectors="true" termPositions="true" termOffsets="true":(“...字段 phone 不存储位置和偏移量...”例如)

在我 运行 重建索引后,它没有修复日志中的 "spam " 警告。

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

所以,我重新启动 tomcat:

  • sudo /etc/init.d/tomcat6 restart.

  • 我再次开始重建索引,因为所有突出显示都丢失了

非常感谢@chefe 的帮助!