wangwengwu 发表于 2018-11-1 13:52:53

solr学习之(四)_solr4.2.0版本的spellCheck功能的实现

  尽管solr4.2的spellcheck功能已经配置在solr\collection1\conf\solrconfig.xml文件中了,但是我一直没有正确地看到这个模块的效果。晚上再认真看了一下apache_solr_4_cookbook.pdf这本书,然后按照书本描述配置了一下。
  在solr4.0以前的版本中,spellcheck功能都需要构建自己的索引,每次配置后都需要更新索引,比较麻烦。而solr4.0以后,通过solr.DirectSolrSpellchecker就可以在main索引中直接用spellcheck功能了。通过观察solr-4.2.0\example\exampledocs\money.xml文件,我们可以看到里面有一个cat属性。
  


[*]
[*]USD
[*]One Dollar
[*]Bank of America
[*]boa
[*]currency
[*]Coins and notes
[*]1,USD
[*]true
[*]
  

  我这里就以cat属性为例,学习一下solr4.2中实现spellcheck的功能。
  第一步:把solrconfig.xml的
  


[*]
[*]……
[*]
[*]
[*]……
[*]
  

  配置成如下:
  


[*]
[*]    textSpell
[*]   
[*]      direct
[*]      cat
[*]      solr.DirectSolrSpellChecker
[*]      internal
[*]      0.5
[*]      2
[*]      1
[*]      5
[*]      4
[*]      0.01
[*]
[*]
[*]
[*]   
[*]      text
[*]      direct
[*]      on
[*]      true
[*]      10
[*]      true
[*]      true
[*]   
[*]   
[*]      spellcheck
[*]   
[*]
  

  然后重启tomcat,在浏览器的地址栏输入:
  http://localhost:8983/solr/spell?q=cat:currenc&spellcheck=true
  我们就可以看到:
  


[*]
[*]
[*]0
[*]27
[*]
[*]
[*]
[*]
[*]
[*]1
[*]4
[*]11
[*]0
[*]
[*]
[*]currency
[*]4
[*]
[*]
[*]
[*]false
[*]
[*]cat:currency
[*]0
[*]
[*]currency
[*]
[*]
[*]
[*]
[*]
  

  解析一下吧:我输入的q=cat:currenc实际上是没有拼写正确的,正确的应该是currency,cat表示索引的一个field。
所以呢,会有这样的结果反馈:
  


[*]false   表示拼写错误
[*]
[*]cat:currency
[*]0
[*]
[*]currency正确的结果应该是:currency。
  

  So easy吧!


页: [1]
查看完整版本: solr学习之(四)_solr4.2.0版本的spellCheck功能的实现