背景:尽管我的主机服务器确认我已正确执行了日语mecab解析器的安装,但我已经构建了一个自定义搜索引擎,该搜索引擎的英语工作正常,但日语却失败。我自己的检查显示以下内容:

1)显示创建表:


  完整文本键search_newsletterletter_titleletter_abstractletter_body)/ *!50100带有解析器mecab * /
  )ENGINE = InnoDB AUTO_INCREMENT = 5 DEFAULT CHARSET = latin1


2)显示插件:


  ngram |活动| FTPARSER | NULL | GPL |
    微型电脑活动| FTPARSER | libpluginmecab.so | GPL


实施方式

1)MYSQL语句:


  $sql ="SELECT letter_no, letter_lang, letter_title, letter_abstract, submission_date, revision_date, MATCH (letter_title, letter_abstract, letter_body) AGAINST (? IN NATURAL LANGUAGE MODE) AS letter_score FROM sevengates_letter WHERE MATCH (letter_title, letter_abstract, letter_body) AGAINST (? IN NATURAL LANGUAGE MODE) ORDER BY letter_score DESC";


2)自定义搜索引擎:

请参见https://www.grammarcaptive.com/overview.html的“本地搜索/新闻通讯”下的内容

3)搜索文件:

参见https://www.grammarcaptive.com/overview.html的“常规更新” /“新闻” /“ Archives” /“日语”下

评论:PHP和MySQL都不抱怨。只是,不会返回任何需要解析的日语单词搜索。例如,可以搜索和找到单词日本语,但是不需要检索任何解析。在新闻通讯中搜索其他日语单词失败。

请求:任何故障排除提示将不胜感激。

罗迪

最佳答案

您可以检查几件事:

Mecab是否在命令行上工作?

假设使用类似linux的系统,您应该能够执行以下操作:

echo "日本語ですよ" | mecab


输出应大致如下所示(细节可能会有所不同):

日本    名詞,固有名詞,地名,国,*,*,ニッポン,日本,日本,ニッポン,日本,ニッポン,固,*,*,*,*
語      名詞,普通名詞,一般,*,*,*,ゴ,語,語,ゴ,語,ゴ,漢,*,*,*,*
です    助動詞,*,*,*,助動詞-デス,終止形-一般,デス,です,です,デス,です,デス,和,*,*,*,*
よ      助詞,終助詞,*,*,*,*,ヨ,よ,よ,ヨ,よ,ヨ,和,*,*,*,*


在某些平台上,mecab在MySQL中是静态链接的,因此您不需要系统安装,但是the docs表示并非总是如此。

您的编码设置正确吗?

表的默认字符集是latin1,该字符集不适用于日语文本。我建议使用utf8,您需要检查您的mecab安装是否支持该功能。

希望能有所帮助。

关于php - 如何解决Mecab分析器功能异常,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53584036/

10-11 03:14