内容简介:Phabricator 配置 ElasticSearch 以及中文分词
自从去年使用 Phabricator 进行项目管理以来,感觉还是挺爽的。这个产品最大的特点是灵活,各个模块之间都是关联应用的关系,不是严格的依赖关系。这种设定非常适合我们目前的项目。最早之前使用禅道管理,但是感觉禅道上设定的产品,项目,需求,任务之间的依赖关系比较严格,有时候项目的推进并不是这么规范的,用起来就比较不顺手了。但是还是得说,禅道也是国产的项目管理产品中非常不错的。
好了,回来再说 Phabricator,虽然用起来很灵活,但是就是有一个很大的问题,对于中文的搜索非常的糟糕,这也是在意料之中的事情。所以我想着让 Phabricator 结合 ElasticSearch 来进行全文检索,对于中文分词来讲,IK 是非常的棒的,所以把 IK 这个扩展也要做到 ElasticSearch 中。
以下是用到的版本信息:
安装 Phabricator
Phabricator 的安装可以参考官方网站上的说明文档,如果是一台干净的机器,直接完全用来安装 Phabricator,他还提供了完整的自动化安装的脚本。
安装 ElasticSearch
首先在官方网站下载 ElasticSearch 5.4.0 的 DEB 安装包: 点击这里进入下载页面 。然后在 Ubuntu 上使用 dpkg 命令安装。
user@host:~$ sudo dpkg -i elasticsearch-5.4.0.deb
由于 ElasticSearch 需要 1.8 版本的 JDK,我现在在用的 Ubuntu 14.04 的软件仓库中没有 JDK 1.8,所以直接去 Oracle 的网站 下载一个 Linux 版本的 Java SDK ,然后直接解压缩就可以了。
由于解压缩版本的 Java SDK 不会向系统注册任何变量什么的,所以需要手动的修改一下 ElasticSearch 的启动脚本 / etc / init . d / elasticsearch ,在 export JAVA_HOME 一行上面插入刚才解压缩的 Java SDK 的目录设定:
# Define other required variables PID_FILE="$PID_DIR/$NAME.pid" DAEMON=$ES_HOME/bin/elasticsearch DAEMON_OPTS="-d -p $PID_FILE -Edefault.path.logs=$LOG_DIR -Edefault.path.data=$DATA_DIR -Edefault.path.conf=$CONF_DIR" # 这里,把我们解压缩版本的 Java SDK 的路径配置进来 JAVA_HOME="/home/user/apps/jdk1.8.0_131" export ES_JAVA_OPTS export JAVA_HOME export ES_INCLUDE export ES_JVM_OPTIONS
然后就可以启动 ElasticSearch 的服务了,默认情况下监听地址和端口是: http : //127.0.0.1:9200 :
user@host:~$ sudo service elasticsearch start
安装 IK 分词插件
IK 分词插件的文档对于如何安装写的很清楚了,可以参考这里: https://github.com/medcl/elasticsearch-analysis-ik。
需要提示的是,如果 ElasticSearch 使用 DEB 包安装,那么他的目录位于: / usr / share / elasticsearch。把下载的打包好的 IK 插件 zip 文件解压缩到:
/ usr / share / elasticsearch / plugins / ik
,目录结构如下:
user@host:/usr/share/elasticsearch/plugins/ik$ pwd /usr/share/elasticsearch/plugins/ik user@host:/usr/share/elasticsearch/plugins/ik$ ls commons-codec-1.9.jar config httpclient-4.5.2.jar plugin-descriptor.properties commons-logging-1.2.jar elasticsearch-analysis-ik-5.4.0.jar httpcore-4.4.4.jar
解压缩 IK 插件之后,需要重启 ElasticSearch 服务:
user@host:~$ sudo service elasticsearch restart
配置 ElasticSearch 使用 IK 分词插件
默认情况下,Phabricator 的全文索引的仓库名字叫做 phabricator ,所以,我们可以先为 ElasticSearch 针对这个仓库配置 IK 分词插件:
curl -XPOST http://localhost:9200/index/phabricator/_mapping -d' { "phabricator": { "_all": { "analyzer": "ik_max_word", "search_analyzer": "ik_max_word", "term_vector": "no", "store": "false" }, "properties": { "content": { "type": "text", "analyzer": "ik_max_word", "search_analyzer": "ik_max_word", "include_in_all": "true", "boost": 8 } } } }'
配置 Phabricator 连接到 ElasticSearch
我使用的这个 2017 5 月底版本的 Phabricator 的全文检索的配置项相比之前的版本已经发生了变化,新的配置项是 cluster . search ,并且这个项不能在 Web 界面上配置,需要使用 . / bin / config 命令来配置:
user@host:~$ cd your_phabricator_path user@host:~$ ./bin/config set cluster.search '[{"type": "elasticsearch", "version": 5, "hosts": [{"host": "127.0.0.1", "port": 9200, "protocol": "http", "roles": {"read": true, "write": true } } ] }]'
然后在 Phabricator 的 Config 菜单中,检查 Search Servers:

如果没有出现 Okay 的字样,表示配置存在问题,需要重新检查。
配置完毕之后,可以进行索引的初始化和创建:
user@host:~$ cd your_phabricator_path user@host:~$ ./bin/search init user@host:~$ ./bin/search index --type 要索引的对象类型
比较奇怪的是,之前版本的 Phabricator 直接使用 . / bin / search index -- type all 就可以自动完全的重建索引,但是这个版本我发现 -- type all 会包含二进制的文件,所以会导致索引的过程一致在报错,所以,只好选择自己需要的类型来进行索引了。
可用的类型有:
- AlmanacDevice
- AlmanacNamespace
- AlmanacNetwork
- AlmanacService
- ConpherenceThread
- DifferentialRevision
- DivinerLiveBook
- DivinerLiveSymbol
- DrydockBlueprint
- FundInitiative
- HarbormasterBuildPlan
- ManiphestTask
- NuanceSource
- PassphraseCredential
- PhabricatorBadgesBadge
- PhabricatorCalendarEvent
- PhabricatorDashboard
- PhabricatorDashboardPanel
- PhabricatorFile
- PhabricatorOwnersPackage
- PhabricatorPackagesPackage
- PhabricatorPackagesPublisher
- PhabricatorPackagesVersion
- PhabricatorPhurlURL
- PhabricatorProject
- PhabricatorRepository
- PhabricatorRepositoryCommit
- PhabricatorUser
- PhameBlog
- PhamePost
- PholioMock
- PhrictionDocument
- PonderQuestion
关键是我还没有找到一次 . / bin / search index -- type 命令如何传送多种类型的方式,郁闷的我只好一个一个的来,当然了我这里只启用了几个模块,所以需要索引的无非就是文档,版本提交,任务,设计原型这么几个。
以上所述就是小编给大家介绍的《Phabricator 配置 ElasticSearch 以及中文分词》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- ElasticSearch配置中文分词器
- 基于海量公司分词ES中文分词插件
- 北大开源全新中文分词工具包:准确率远超THULAC、结巴分词
- 复旦大学提出中文分词新方法,Transformer连有歧义的分词也能学
- 分词,难在哪里?
- 隐马尔可夫分词
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Persuasive Technology
B.J. Fogg / Morgan Kaufmann / 2002-12 / USD 39.95
Can computers change what you think and do? Can they motivate you to stop smoking, persuade you to buy insurance, or convince you to join the Army? "Yes, they can," says Dr. B.J. Fogg, directo......一起来看看 《Persuasive Technology》 这本书的介绍吧!