3

我有一个定义如下的 fieldType。现在,我已经定义了这个字段类型的字段“StatusCode”,它包含一个像 A 或 P 这样的单个字符。我已经使用这个 fieldType 对数据进行了索引,当我运行像 StatusCode:A 这样的查询时,它不会返回任何结果。有人可以解释为什么查询不适用于单字符字段吗?

<fieldType name="text_exact_fuzzy" class="solr.TextField" omitNorms="false">
      <analyzer type="index">
          <tokenizer class="solr.StandardTokenizerFactory"/>
          <filter class="solr.StandardFilterFactory"/>
          <filter class="solr.LowerCaseFilterFactory"/>
        </analyzer>
      <analyzer type="query">
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.StandardFilterFactory"/>
        <filter class="solr.LowerCaseFilterFactory"/>           
      </analyzer>
    </fieldType>
4

2 回答 2

3

将 StatusCode 之类的字段定义为 text_exact_fuzzy 并使用这些分析器似乎很奇怪。

使用简单的 StrField 代替,无需执行任何分析(如果需要,只需使用小写过滤器工厂),您应该会获得预期的命中。

于 2012-11-29T21:51:32.467 回答
0

首先,我建议你建立一个这样的查询:(对于这个例子,让我们调用你的字段,其中包含你的单个字符 TEST )

查询 = 测试:p 和测试:a

你有任何结果吗?

于 2012-11-30T11:36:09.903 回答