如何排除mecab解析器的故障

c6ubokkw  于 2021-06-18  发布在  Mysql
关注(0)|答案(2)|浏览(395)

背景:我已经建立了一个定制的搜索引擎,它在英语中运行良好,但在日语中失败,尽管我的主机服务器确认我已经正确地安装了日语mecab解析器。我自己的支票显示如下:
1) 显示创建表:
全文键 search_newsletter ( letter_title , letter_abstract , letter_body ) /*!50100带解析器 mecab */)引擎=innodb自动增量=5默认字符集=1
2) 显示插件:
ngram | active | ftparser | null | gpl | mecab | active | 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
评论:php和mysql都没有抱怨。任何需要解析的日语单词搜索都不会返回。例如,单词日本語 可以进行搜索和查找,但不需要检索任何解析。在时事通讯中搜索任何其他日语单词都失败。
要求:任何故障排除技巧将不胜感激。
罗迪

9bfwbjaz

9bfwbjaz1#

您可以检查以下几点:
mecab在命令行上工作吗?
假设采用类似linux的系统,您应该能够执行以下操作:

echo "日本語ですよ" | mecab

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

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

在某些平台上,mecab在mysql中是静态链接的,因此您不需要安装系统,但文档表明情况并非总是如此。
你的编码设置正确吗?
表的默认字符集是 latin1 ,这对日语文本不起作用。我建议使用utf8,您需要检查mecab安装是否支持该功能。
希望有帮助。

rryofs0p

rryofs0p2#

结果是必须对整个表进行编码,而不仅仅是列。好吧,至少,这是我重组table时所做的一个显著的改变。
不管怎样,解析器不会出现在myphpadmin表部分中,而解析器显然应该出现在该部分中。这可能是由于解析器在表的showcreate语句中的显示方式。无论如何,与解析器的整体功能相比,这是一个小缺点。
罗迪

相关问题