背景:尽管我的主机服务器确认我已正确执行了日语mecab解析器的安装,但我已经构建了一个自定义搜索引擎,该搜索引擎的英语工作正常,但日语却失败。我自己的检查显示以下内容:
1)显示创建表:
完整文本键search_newsletter
(letter_title
,letter_abstract
,letter_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/