当前位置:  开发笔记 > 运维 > 正文

"你的意思是?" Lucene.net中的功能

如何解决《"你的意思是?"Lucene.net中的功能》经验,为你挑选了2个好方法。

有人可以告诉我如何在Lucene.net中实现"你是不是真的"功能?

谢谢!



1> itsadok..:

您应该查看contrib目录中的SpellChecker模块.它是Java lucene的SpellChecker模块的一个端口,因此它的文档应该是有用的.

(来自javadocs :)

用法示例:

  import org.apache.lucene.search.spell.SpellChecker;

  SpellChecker spellchecker = new SpellChecker(spellIndexDirectory);
  // To index a field of a user index:
  spellchecker.indexDictionary(new LuceneDictionary(my_lucene_reader, a_field));
  // To index a file containing words:
  spellchecker.indexDictionary(new PlainTextDictionary(new File("myfile.txt")));
  String[] suggestions = spellchecker.suggestSimilar("misspelt", 5);


SpellChecker模块移动:https://svn.apache.org/repos/asf/lucene/lucene.net/trunk/C%23/contrib/SpellChecker.Net/

2> jishi..:

AFAIK Lucene支持接近搜索,这意味着如果您使用以下内容:

字段:stirng〜0.5

(这是一个代号)

将匹配"字符串".浮点数是搜索的"容忍度",其中1.0是精确匹配,0.0是匹配所有(排序).

但是,不同的解析器将以不同方式实现此

邻近搜索比模糊搜索(stri*)慢得多,因此请谨慎使用.在您的情况下,人们会认为如果您在常规搜索中找不到匹配项,那么您可以尝试进行邻近搜索以查看您找到的内容,并根据结果以某种方式显示"您的意思是".

出于性能原因,可能有助于缓存此类查找以查找非常常见的错误拼写.

推荐阅读
yzh148448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有