【问题标题】:How can I set up Solr to tokenize on whitespace and punctuation?如何设置 Solr 以标记空格和标点符号?
【发布时间】:2010-10-08 13:35:30
【问题描述】:

我一直在尝试让我的 Solr 模式(使用 Solr 1.3.0)创建由空格和标点符号化的术语。以下是我希望看到的一些示例:

terms given -> terms tokenized

foo-bar -> foo,bar
one2three4 -> one2three4
multiple words/and some-punctuation -> multiple,words,and,some,punctuation

我认为这种组合会起作用:

<fieldType name="text" class="solr.TextField" positionIncrementGap="100">
  <analyzer type="index">
    <tokenizer class="solr.WhitespaceTokenizerFactory"/>
    <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1"/>
  </analyzer
<fieldType>

问题是这会导致以下字母到数字的转换:

one2three4 -> one,2,three,4

我尝试了WordDelimiterFilterFactory 设置的各种组合,但没有一个被证明是有用的。是否有可以处理我需要的过滤器或标记器?

【问题讨论】:

    标签: search solr full-text-indexing


    【解决方案1】:

    怎么样

    <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" splitOnNumerics="0" />
    

    这应该防止 one2three4 被拆分

    【讨论】:

    • 这就是我的想法,但无论该设置如何,generateWordParts 都会对数字进行拆分。 i.imgur.com/WpgCl.png
    • 您是否正确配置了查询时间?在您的 OP 中,我只看到定义的索引时间分析器。它适用于我的 solr 1.4,所以我猜这要么是 1.3 中的错误,要么是您的配置问题。
    • 查询时间也是如此。我开始认为这也是 1.3.0 中的一个错误。
    • 这当然是可能的。我必须自己提交一些补丁来修复 1.3 中的错误:-/
    • 原来这不是一个错误。 splitOnNumerics 选项直到 Solr 1.4 版本才被添加。如果 Solr wiki 不是只读的,我会记下在 1.4 版中包含这些选项。
    猜你喜欢
    • 1970-01-01
    • 2014-11-16
    • 1970-01-01
    • 1970-01-01
    • 2019-08-08
    • 1970-01-01
    • 2019-05-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多