yanyiwu / nodejieba

"结巴"中文分词的Node.js版本
MIT License
3.07k stars 279 forks source link

部署至百度BAE上后出现路径问题 #22

Closed brunoyang closed 9 years ago

brunoyang commented 9 years ago

在本地跑是没有问题的,具体的路径可以查看 这里 ,nodejieba引用在app/models/nodejieba.js,在app/controllers/ad里调用了nodejieba。

但是部署到百度BAE上后,出现了路径问题,提示如下: node: ../src/CppJieba/DictTrie.hpp:146: void CppJieba::DictTrie::_loadDict(const string&): Assertion `ifs.is_open()' failed.

yanyiwu commented 9 years ago

bae我没用过。 是不是远端部署的时候忘了 npm install nodejieba ?

brunoyang commented 9 years ago

应该不是没有install的问题,因为bae是通过 package.json 自动部署的,里面有"nodejieba": "^0.2.10",这一句

yanyiwu commented 9 years ago

更新了一个新的nodejieba版本 v0.2.11 ,里面对于初始化错误打更详细的日志信息。你升级一下再部署一下。报错再贴一下新的报错信息。谢谢。

brunoyang commented 9 years ago

2015-05-14 17:45:06 DictTrie.hpp:124 FATAL file ./node_modules/nodejieba/dict/jieba.dict.utf8 open failed. 不好意思,最近忙着项目,这是重新部署上去之后出来的错误信息

yanyiwu commented 9 years ago

是词典路径问题,更新了一个新版本 v0.2.12 专门解决这类问题。

以前的词典加载路径是:

nodejieba.loadDict("./node_modules/nodejieba/dict/jieba.dict.utf8", "./node_modules/nodejieba/dict/hmm_model.utf8", "./node_modules/nodejieba/dict/user.dict.utf8");

现在改成:

nodejieba.loadDict(nodejieba.DEFAULT_DICT, nodejieba.DEFAULT_HMM_DICT, nodejieba.DEFAULT_USER_DICT);

主要是为了避免词典路径写相对地址导致的一些运行目录不一致的问题。 新用法请看 README.md 和 test/目录下的示例文件。

yanyiwu commented 9 years ago

使用最新版本v1.0.0吧,妈妈再也不用担心你的词典路径问题。