Solr拼写检查(spellCheck)配置和使用

2019-03-27 01:07|来源: 网路

   Solr具有拼写检查的功能,您只需修改solr的配置文件(solrconfig.xml)中spellcheck部分:

  <searchComponent name="spellcheck" class="solr.SpellCheckComponent">

    <str name="queryAnalyzerFieldType">textSpell</str>

     <!--likehua 20121227 -->
       <lst name="spellchecker">
         <str name="classname">solr.FileBasedSpellChecker</str>
         <str name="name">file</str>
         <str name="sourceLocation">spellings.txt</str>
         <str name="characterEncoding">UTF-8</str>
         <str name="spellcheckIndexDir">spellcheckerFile</str>
       </lst>

  </searchComponent>

其中spelling.txt中,如果想加入汉字,确保为UTF-8 无BOM编码。

样例(一行一个单词)如下:

pizza
history
李克华

http://localhost:1985/solr/spell?spellcheck.q=%E6%9D%8E%E5%85%8B%E8%AF%9D&spellcheck=true&spellcheck.dictionary=file&spellcheck.build=true

检索结果:

其中检索的关键字 在客户端需要用encodeURI编码一下。


转自:http://www.cnblogs.com/likehua/archive/2012/12/27/2836455

相关问答

更多
  • 考虑用你的建议创建一个单独的核心/集合,并使用它。 这将允许您通过使用freq对每个文档(即建议)应用提升,并使用模糊搜索 ( q=term~ )来查找建议(如果拼写错误)。 根据用例的不同, 提示器也可能很有用,但专用的收集将为您提供最大的灵活性(即您可以以任何您想要的方式对其进行评分)。 Consider creating a separate core/collection with your suggestions and use that instead. That will allow you ...
  • 如果我是你,我会从英文维基词典下载数据并解析它以获取所有英文单词的列表(例如)。 然后你可以自己轻松地编写至少一个原始的拼写检查器。 事实上,我在自己的数学应用程序AlgoSim中使用了解析版的英文维基词典。 如果您愿意,我可以将数据文件发送给您。 更新 我现在已经在english.zip上发布了一个解析的单词列表(942 kB,383735条目,zip) 。 该数据来源于英文维基词典,因此根据知识共享署名/相同方式许可进行许可。 要获得这样的列表,您可以将维基词典上的所有文章下载为包含所有Wiki和HTM ...
  • 我其实只是想通了。 我需要把。 If Target = rDNotes Then Target.CheckSpelling SpellLang:=1033 End If 我不确定SpellLang:= 1033意味着什么,但这正是我需要它工作的方式。 我将不得不做进一步的研究,以了解它的作用以及我确信它具有的其他选择。 I actually just figured it out. I needed to put. If Target = rDNotes Then Target.Check ...
  • 你在schema.xml中使用copyfield。 会将所有字段复制到contentSpell。 然后将name改为contentSpell您将从所有字段获得建议。 You use copyfield for this in schema.xml.
  • 默认情况下,距离和人气。 它计算Levenshtein距离 ,然后首先对其进行排序,然后根据每个可能的替换在索引中出现的频率在每个组内进行排序。 deutsch - 距离:1 荷兰 - 距离:1 德意志 - 距离:2 durch - 距离:2 死亡 - 距离:2 据推测,“德意志”似乎比“荷兰人”更常出现,而“德意志”更常出现在“溺水”或“死亡”之上。 By default, distance and popularity. It calculates the Levenshtein distance, a ...
  • Solr本身并不支持这一点。 这是你可以在客户端处理的东西。 Solr itself doesn't support this. It is something you can handle in the client.
  • 答案是一起指定spellcheck.q和q 。 这样主要的查询结果基于q但拼写建议在spellcheck.q 。 看起来Solr正在对q进行标记并应用一些过滤器。 The answer is to specify spellcheck.q and q together. That way the main query results are based on q but the spelling suggestion on spellcheck.q. It looks like Solr was token ...
  • 您可以通过以下方式指定所有参 query.setParam("spellcheck", "true"); query.setParam("spellcheck.q", query); You can specify all parameters via: query.setParam("spellcheck", "true"); query.setParam("spellcheck.q", query);
  • 将所有文本字段复制到一个字段: 然后从字段“textSpell”构建拼写检查索引 default textSpell ./spellchecker Copy all ...
  • 还有另一个选项,即SOLR建议选项,专门为建议而构建,作为拼写检查组件的替代选项。 solr ship-in with的techproducts示例包含拼写建议器组件的示例配置。 https://cwiki.apache.org/confluence/display/solr/Suggester http://lucidworks.com/blog/2015/03/04/solr-suggester/ Answering a solution for my question so that it helps ...