0

我的 solr 安装只建议单词的存根,而不是完整的单词。

如果我搜索导体,我会得到这样的结果:

<int name="conductor">68</int>
<int name="symphoni">51</int>
<int name="no.">46</int>
<int name="rattl">28</int> 

我想要的是:

  • 交响乐而不是syphoni
  • 拨浪鼓(Simon Rattle,指挥)而不是拨浪鼓

等等。

生成的完整查询是:

select?fl=abstract&facet=true&facet.field=abstract&facetlimit=8&facet.mincount=1&omitHeader=true&qf=content%5E40.0+title%5E5.0+keywords%5E2.0+tagsH1%5E5.0+tagsH2H3%5E3.0+tagsH4H5H6%5E2.0+tagsInline&json.nl=map&q=conductor&start=0&rows=5

我使用 TYPO3,所以可以在这里找到配置 xml:

https://github.com/subbugoe/typo3-solr/blob/master/resources/solr/typo3cores/conf/solrconfig.xml

架构可以在这里找到:

https://github.com/subbugoe/typo3-solr/blob/master/resources/solr/typo3cores/conf/english/schema.xml

4

2 回答 2

1

arun 是正确的,这个问题是因为您正在检索由索引分析器阻止的字段的构面。我查看了 TYPO3 提供的其他 fieldType 定义,textSpell fieldType 看起来很有希望。

我建议将以下内容添加到 general_schema_fields.xml 文件中。

 <field name="abstract_facet" type="textSpell" indexed="true" stored="true" />
 <copyfield source="abstract" dest="abstract_facet" />

您需要重新索引您的数据以使这些更改生效,然后您可以运行以下查询,它应该可以为您提供更好的结果。

 select?fl=abstract&facet=true&facet.field=abstract_facet&facetlimit=8&facet.mincount=1
  &omitHeader=true&qf=content%5E40.0+title%5E5.0+keywords%5E2.0+tagsH1%5E5.0
  +tagsH2H3%5E3.0+tagsH4H5H6%5E2.0+tagsInline
  &json.nl=map&q=conductor&start=0&rows=5

如果这不能完全满足您的需求,我建议您查看Solr Wiki - Analyzers, Tokenizers and Token Filters,以获取有关如何处理值并将其存储在索引中的更多指导。最终,您可能希望创建一个完全独立的 fieldType 以用于分面。

于 2013-02-21T19:11:38.387 回答
1

您的架构中只有两种字段类型,并且都使用 SnowballPorterFilterFactory 进行词干提取。您可以使用不进行词干提取的复制字段,并使用该字段来获取完整词而不是词干词。

于 2013-02-21T18:38:39.237 回答