技巧教程 Xenforo Enhanced search 修改支持Elasticsearch的IK分词

  • 欢迎 游客 您的光临,下载之前请先阅读 积分规则(暂行) 。任何技术问题请在论坛提问,本站定制插件、模板主题售前、售后问题请联系QQ:5916171
UID
33
注册
2017/11/12
消息
53
解决方案
3
反馈评分
37
黄金
5,836.1G
XFES使用ES搜索,为中文用户提供了非常可靠高效的搜索功能。原版XENFORO直接安装XFES后,使用ES搜索,即可以匹配中文搜索。不过由于elasticsearch需要安装IK分词插件,如果elasticsearch从0.98升到ES2或者ES5/ES6,就没有办法默认使用IK分词,所以需要简单修改一下XFES的代码,使用XFES在创建索引时使用IK分词,而不是使用default.
找到文件:
src\addons\XFES\Service\Analyzer.php
查找
PHP:
'tokenizer' => 'standard',
更改为
PHP:
'tokenizer' => 'ik_max_word',
XENFORO后台,进入增强索引设置页面 admin.php?enhanced-search,
索引配置–> 停用词 –> 使用自定义列表
输入中文停用词,然后重建所有搜索索引即可

这修改后,后台的增强搜索设置中,会出现“XenForo不支持当前的索引配置. 此处更新索引选项将删除您现有的配置”的错误,忽视即可
修改后的搜索精确度要高得多
 
打赏用户:
死了算了

死了算了

管理成员
CNXFans
UID
1
注册
2017/07/28
消息
1,145
解决方案
26
反馈评分
5,191
黄金
58,430.3G
很好的修改 厉害了
 
UID
33
注册
2017/11/12
消息
53
解决方案
3
反馈评分
37
黄金
5,836.1G
“XenForo不支持当前的索引配置. 此处更新索引选项将删除您现有的配置”的错误的消除办法
src\addons\XFES\Service\Analyzer.php文件中查找:
PHP:
if ($default['type'] != 'custom' || $default['tokenizer'] != 'standard')
替换为
PHP:
if ($default['type'] != 'custom' || $default['tokenizer'] != 'ik_max_word')
其实就是ES搜索中将ik_max_word设置为默认的分词工具。如果能够在ES5或者ES6中将IK设置为默认分词器就不用改。我不会玩elasticsearch
 
  • 支持
反馈: sniper756

死了算了

管理成员
CNXFans
UID
1
注册
2017/07/28
消息
1,145
解决方案
26
反馈评分
5,191
黄金
58,430.3G
我也想试试了
 
UID
6
注册
2017/09/10
消息
12
反馈评分
3
黄金
10,619.2G
原来安装了ik插件还需要设置呀
 
UID
446
注册
2019/10/02
消息
7
反馈评分
0
黄金
2,302.9G
    iOS Chrome Mobile 86.0.4240.65
  • #7
试试
 
UID
33
注册
2017/11/12
消息
53
解决方案
3
反馈评分
37
黄金
5,836.1G
    Windows 10 Chrome 87.0.4280.88
  • #8
最新的不用改了,直接用,而且更准确。
 
  • 支持
反馈: sniper756
UID
1148
注册
2020/12/27
消息
32
反馈评分
2
黄金
783.6G
    Windows 7 Chrome 80.0.3987.163
  • #9
感谢分享,