lucene.net 分词搜索问题

MICKYONLY 2009-09-11 04:10:49
我使用了lucene.net的内置分析器StandardAnalyzer,对于中文搜索没有任何问题,但是对英文和数字以及符号等搜索不是很理想
举个例子:12345-12,当我输入12345的时候是检索不到12345-12的,只有在输入12345-12的时候才能被检索到
不知怎么才能解决,在网上看了ChineseAnalyzer,不是内置的,不知道效果怎么样,希望哪位大侠能帮忙提供一个比较好的解决方法,倾囊相送100分
...全文
465 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
玻璃心 2012-02-28
  • 打赏
  • 举报
回复
ChineseAnalyzer 也是内置的,不过要加一个dll,Lucene.Net.Analysis.Cn.dll
引用上就可以了
MICKYONLY 2009-09-14
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 showbo 的回复:]
中科的分词还可以,不过出现繁体中文时会出错,文章长度太长也出现错误。。C#的中科bug挺多

可以去搜索射日分词,还不错。。

今天刚从中科的分词转到射日。就是因为中科分繁体出错。
[/Quote]
射日分词还是第一次听说啊,您能给个能用的源码不?
gongsun 2009-09-12
  • 打赏
  • 举报
回复
...
白s菜 2009-09-12
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 zengfanxing 的回复:]
在Lucene.net中有很多种分词器,不同分词器使用了不同的分词算法,有不同的分词效果,满足不同的需求!在这里主要是看看其中五中分词器用来对中文切词的效果。五中分词器分别为:StandardTokenizer,CJKTokenizer,ChinessTokenizer,LowerCaseTokenizer,WhitespaceTokenizer;


[/Quote]
全是二元分词 根本不能满足实际需求
ch219888 2009-09-11
  • 打赏
  • 举报
回复
dddd
红街咖啡 2009-09-11
  • 打赏
  • 举报
回复
在Lucene.net中有很多种分词器,不同分词器使用了不同的分词算法,有不同的分词效果,满足不同的需求!在这里主要是看看其中五中分词器用来对中文切词的效果。五中分词器分别为:StandardTokenizer,CJKTokenizer,ChinessTokenizer,LowerCaseTokenizer,WhitespaceTokenizer;

wuyq11 2009-09-11
  • 打赏
  • 举报
回复
Analysis模块主要提供了文本解析的功能,输入为TextReader的字符流,最终解析成TokenStream形式的结果返回给调用端。Analysis主要为Index和QueryParser模块提供解析服务,分别是在Indexing原始文件和解析搜索语句中的Term的过程中。
定义了基类Analyzer, 子类SimpleAnalyzer(简单分析器,只分词),StopAnalyzer(定义了StopTable,过滤Noise Word)以及标准分析器StandardAnalyzer。

SimpleAnalyzer:功能强于WhitespaceAnalyzer,将除去letter之外的符号全部过滤掉,并且将所有的字lowcase化,不支持中文
StopAnalyzer:StopAnalyzer的功能超越了SimpleAnalyzer,在SimpleAnalyzer的基础上
增加了去除StopWords的功能,不支持中文
StandardAnalyzer:英文的处理能力同于StopAnalyzer.支持中文采用的方法为单字切分.
ChineseAnalyzer:来自于Lucene的sand box.性能类似于StandardAnalyzer,缺点是不支持中英文混和分词.
Go 旅城通票 2009-09-11
  • 打赏
  • 举报
回复
中科的分词还可以,不过出现繁体中文时会出错,文章长度太长也出现错误。。C#的中科bug挺多

可以去搜索射日分词,还不错。。

今天刚从中科的分词转到射日。就是因为中科分繁体出错。
xierfly 2009-09-11
  • 打赏
  • 举报
回复
默认情况下是针对非中文进行分词的。至于lz的问题,我无法回答,了解它不深。
hql5202004 2009-09-11
  • 打赏
  • 举报
回复
对于我们中文分词,可以用中文分词模块进行切分。。
winner2050 2009-09-11
  • 打赏
  • 举报
回复
[Quote=引用楼主 mickyonly 的回复:]
我使用了lucene.net的内置分析器StandardAnalyzer,对于中文搜索没有任何问题,但是对英文和数字以及符号等搜索不是很理想
[/Quote]

搞反了吧。

StandardAnalyzer 用于中文是“分字”,不是“分词”。

输入“多线程”可以搜索到“多少钱一斤”的文章。
andrewsway 2009-09-11
  • 打赏
  • 举报
回复
帮顶
tzs2304 2009-09-11
  • 打赏
  • 举报
回复
mark
zhulong1111 2009-09-11
  • 打赏
  • 举报
回复
mark
yzone 2009-09-11
  • 打赏
  • 举报
回复
白s菜 2009-09-11
  • 打赏
  • 举报
回复
帮顶!
bigmingming 2009-09-11
  • 打赏
  • 举报
回复
帮顶!

62,073

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧