在Solr中返回词干

时间:2011-06-03 08:23:56

标签: solr

我们在Solr搜索中出现了,我们需要在词干后检索单词/短语。那就是如果我搜索“橘子”,通过搜索“橙色”进行搜索。如果我启用debugQuery,我将能够看到这一点,但是如果可能的话,我们希望通过结果访问它。基本上,我们需要这个,因为我们将搜索到的单词作为参数传递给第三方应用程序,该应用程序在在线PDF阅读器中突出显示该单词。目前,如果用户搜索“oranges”并且文档包含“orange”,则PDF不会突出显示任何内容,因为它会尝试突出显示“oranges”而不是“orange”。

提前全部谢谢,

Krt_Malta

2 个答案:

答案 0 :(得分:0)

我没有Solr的经验,但是如果你需要它只是为了向用户演示,你可以使用相同的词干提取器来解决他们的查询Solr自己使用。这可能会更快,因为它可以避免前往Solr指数。对于英语,这可能是http://tartarus.org/~martin/PorterStemmer/ - 或者您可以检查Solr的实现。

然而,需要注意的是,大多数词干算法并不能保证词干会成为实际词汇。点击http://snowball.tartarus.org/algorithms/english/stemmer.html查看示例。

答案 1 :(得分:0)

您可以使用隐式 analysis request handler 来获取词干。

对于您的示例,如果您使用 text_en 字段和 Snowball Stemmer,则 URL

<YOUR SOLR HOST>/solr/<YOUR COLLECTION>/analysis/field?analysis.query=oranges&analysis.fieldtype=text_en&verbose_output=1

会给你一个 json 响应,包括以下内容:

"org.apache.lucene.analysis.snowball.SnowballFilter",
      [
        {
          "text": "orang",
             ...