2013-02-21 88 views
0

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

如果我搜索导线我得到的结果类似:

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

我想什么都将是:

  • 交响乐代替syphoni
  • 拨浪鼓(西蒙·拉特尔,一导体)而不是rattl

等等。

完整生成的查询是:

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/subugoe/typo3-solr/blob/master/resources/solr/typo3cores/conf/solrconfig.xml

和架构可以在这里找到:

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

回答

1

你在您的模式中只有两种字段类型,并且都使用SnowballPorterFilterFactory进行填充。您可以使用copy field,这不会阻止并使用该字段获取完整的单词而不是词干。

1

阿伦是正确的,这个问题是因为您正在检索由索引分析器阻止的字段的构面。我查看了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以用于分面。

+0

好的。谢谢。我已经翻译了这个例子(原文是德文),但我确实有两种语言。我是否需要两个solr核心,还是这个问题与此无关? – shredding 2013-02-24 16:26:57

+1

我不确定我可以为你解答。这取决于将两种语言存储在相同字段中是否适合您的用例。 – 2013-02-25 01:21:04

+0

我现在已经测试了一切,但现在所产生的方面只是空的:( – shredding 2013-03-07 11:14:45