C# Lucene搜索日语字符

C# Lucene搜索日语字符,c#,asp.net,lucene.net,C#,Asp.net,Lucene.net,我已经为我的应用程序实现了lucene,它运行得非常好,除非您引入了类似于日语字符的东西 问题是如果我有日语字符串こんにちは、このバイネイです 我用它来搜索こ 这是第一个字符,如果我使用一个以上的日语字符(こんにち)搜索内令牌搜索失败,未找到任何文档 lucene是否支持日语字符?要使其正常工作,需要进行哪些设置?lucene内置分析器不支持日语 您需要安装一些分析器,比如java端口,非常流行的日语分析器,它的速度很快 有两个子类型称为 CJKAnalyzer,它也支持中文和韩文,并使用双语法

我已经为我的应用程序实现了lucene,它运行得非常好,除非您引入了类似于日语字符的东西

问题是如果我有日语字符串こんにちは、このバイネイです 我用它来搜索こ 这是第一个字符,如果我使用一个以上的日语字符(こんにち)搜索内令牌搜索失败,未找到任何文档


lucene是否支持日语字符?要使其正常工作,需要进行哪些设置?

lucene内置分析器不支持日语

您需要安装一些分析器,比如java端口,非常流行的日语分析器,它的速度很快

有两个子类型称为

  • CJKAnalyzer,它也支持中文和韩文,并使用双语法方法
  • JapaneseAnalyzer,只支持日语,使用形态分析器,速度应该非常快
  • 我认为不可能有一个能适用于所有语言的分析器。问题是不同的语言在单词边界和词干方面有不同的规则(例如,泰语根本不使用空格来分隔单词)。或者如果有,我当然不想成为维护者


    您需要做的是将文本块“标记”为一种语言或另一种语言,并使用该特定语言的正确分析器。您可以通过进行字符分析来尝试“自动”检测该语言(即,主要使用日语片假名的文本可能是日语)

    您应该使用最近在Lucene 3.6.0中发布的新日本分析仪。它们基于最近在年捐赠给Lucene的优秀形态分析仪

    在撰写本文时,文档有点稀疏,所以这里还有一些链接

    • 如果您使用Solr,这里有一个可以使用的
    • 我在2012年4月20日herokujp会议上的幻灯片,关于全文搜索,重点是分析日语

    (这是Lucene的Java版本的全部内容。)

    @codeka,我正在使用StandardAnalyzer@S.Mark,用户可以在他们的文本字段中有任何内容。我如何决定使用哪个分析器。是否有一些通用分析器可以用于所有languages@Pranali,bi-gram方法更适合这种情况。@S.Mark,您是否有实现bi-gram方法的示例代码或链接。分析是什么这需要一个yzer,如何配置it@Pranali,我没有这方面的实际经验,但由于CJKAnalyzer使用双语法方法,这将是一个很好的尝试。在我的回答中有一个链接,叫做“那是一个java端口,所以您可能需要将它移植到C#”,但由于mecab是用C编写的,所以应该没有那么困难。@Pranali,我在这里s关于SO的帖子列表,你可能想看看。@codeka,我必须搜索吗?指定用于某些单词的分析程序,比如(A-Z)表示英语和(こ-す) 然后浏览提供的文本,找出要使用的分析器。