Sitecore 7.2 - Solr 4 方面搜索建议 - 搜索词中没有带连字符的结果

Sitecore 7.2 - Solr 4 facet search for suggests - No results with hyphens in search word

我正在向 Solr 发送一个请求,以接收对如下字词的建议:

http://localhost:8983/solr/mysearchindex/select?q=_templatename:Page&facet.field=pagecontent_t&facet.prefix=book&rows=0&facet=true&version=2.2&facet.sort=true

pagecontent_t 是一个文本类型的计算字段,其中填充了来自 Sitecore items.Its 配置的内容:

<field fieldName="PageContent" returnType="text">Feature.Search.ComputedFields.PageContentField, Feature.Search</field>

schema.xml中*_t字段的配置:

<dynamicField name="*_t" type="text_general" indexed="true" stored="true" />

<fieldType name="string" class="solr.TextField" sortMissingLast="true">
      <analyzer type="index">
        <tokenizer class="solr.KeywordTokenizerFactory" />
        <filter class="solr.LowerCaseFilterFactory" />
      </analyzer>
      <analyzer type="query">
        <tokenizer class="solr.KeywordTokenizerFactory" />
        <filter class="solr.LowerCaseFilterFactory" />
      </analyzer>
    </fieldType>

它适用于没有连字符的单词,但对于包含连字符的单词我根本得不到任何结果。

我尝试使用字符串类型的复制字段 "pagecontent_s"。使用这个我得到了带有连字符的结果,但是整个页面内容被重新返回而不是仅仅匹配建议的单词。

我错过了什么?获得在搜索词中使用连字符的建议的最佳方式是什么?

如果您只想在白色 space 上拆分单词,不包括其他形式的标点符号,请为您的字段使用 WhitespaceTokenizer 而不是 StandardTokenizer(或某处的 WordDelimiterFilter在你的链中)。

构面是在索引的标记上生成的,如果您的标记被分成比您想要的更小的部分,那么这就是用于计算构面值的部分。更正处理以提供您想要的结果(似乎只有白色 space 应该拆分标记)。