1

Solr 中是否有一个标记器/过滤器可以将一些短语(我猜是文件的形式)索引为单个标记?此外,任何关于将其放在分析器链中的位置的建议都将非常有用。

4

2 回答 2

2

SynonymFilterFactory应该对您有所帮助这是该页面的示例:

#Explicit mappings match any token sequence on the LHS of "=>"
#and replace with all alternatives on the RHS.  These types of mappings
#ignore the expand parameter in the schema.
#Examples:
i-pod, i pod => ipod
sea biscuit, sea biscit => seabiscuit

在索引时,左侧的短语被右侧的单个标记替换。将您的映射存储在一个名为的文件中syn.txt,您可以拥有如下分析器链(再次来自 solr wiki 链接):

<fieldtype name="syn" class="solr.TextField">
      <analyzer>
          <tokenizer class="solr.WhitespaceTokenizerFactory"/>
          <filter class="solr.SynonymFilterFactory" synonyms="syn.txt" 
                  ignoreCase="true" expand="false"/>
      </analyzer>
</fieldtype>
于 2013-03-24T04:29:46.873 回答
1

为此,您将需要使用TokenizerFactory

如果您也想检测句子,那么您可以查看 solr.UAX29URLEmailTokenizerFactory。

如果输入是特定模式,您可以使用 solr.PatternTokenizerFactory。

如果要将整个输入索引为一个字段,可以使用 solr.KeywordTokenizerFactory。

于 2013-03-24T19:04:11.490 回答