给Zblogphp插上Elasticsearch的翅膀
森 发表了文章 • 0 个评论 • 1825 次浏览 • 2021-10-11 23:00
找遍了zblog的应用中心,未发现有使用Elasticsearch搜索引擎的插件。国庆闲来无事,根据zblogphp的机制,开发了一个基于Elasticsearch的插件。
本插件使用简单,需要有一个Elasticsearch7.x的环境(基于7.x版本开发),Elasticsearch 安装[IK](https://github.com/medcl/elasticsearch-analysis-ik)、[pinyin](https://github.com/medcl/elast ... pinyin),[中文简繁體转换](https://github.com/medcl/elast ... onvert) 插件。安装好该插件后,只需要配置好账号密码,点击创建索引模板即可。发布和编辑文章时,会自动根据索引模板,创建post索引,同步文章数据。搜索时,直接接管原有的搜索逻辑,无需调整程序和模板。
后台配置截图:
配置好连接,端口,账号和密码,点击“测试连接”,弹出连接成功,展示版本号,即可点击保存配置,如果这4项错误,连接不上Elasticsearch,获取不到ES的版本号,将无法保存配置。
看到这个提示,便可以点击“保持配置”。这里有一项“切换搜索 Elasticsearch”,开启,前端搜索即切换到了Elastisearch搜索引擎。
在配置好了基本设置以后,点击索引模板,可以预览到索引模板,点击“创建索引模板”,即可在Elasticsearch服务器创建好索引模板,成功后,会在说明栏展示绿色的“已创建”,如果未创建,展示红色的“未创建”。发布和编辑文章时,会根据该索引模板,自动创建好索引,同步文章。
以下是搜索效果截图:
请问大数据量的索引执行forcemerge会有问题吗
laoyang360 回复了问题 • 3 人关注 • 2 个回复 • 1224 次浏览 • 2021-10-24 11:39
elasticsearch 针对同一个索引下 不同嵌套类型的关键字搜索,出现数据紊乱
lijianghu 回复了问题 • 2 人关注 • 1 个回复 • 1087 次浏览 • 2021-10-15 15:03
hive on es 在hiveserver2执行建hive-es映射表时报错Unsupported major.minor version 52.0
回复bluebird168 发起了问题 • 1 人关注 • 0 个回复 • 1772 次浏览 • 2021-10-09 16:13
Ik_max_word分词结果为空
waywu 回复了问题 • 2 人关注 • 1 个回复 • 1640 次浏览 • 2021-10-09 14:25
Elasticsearch 聚合分组查询性能问题
cap_ljf 回复了问题 • 3 人关注 • 1 个回复 • 1174 次浏览 • 2021-10-10 18:19
索引分片失败,[shard creation] trying to lock for [shard creation]
Charele 回复了问题 • 3 人关注 • 1 个回复 • 2047 次浏览 • 2021-10-08 17:31
elasticsearch搜索评分调整
FYYPL 回复了问题 • 3 人关注 • 3 个回复 • 1595 次浏览 • 2021-10-09 13:51
fore_merge 如何做到 segments 均衡?
flyingpot 回复了问题 • 4 人关注 • 4 个回复 • 2012 次浏览 • 2021-10-11 22:59
通过python脚本迁移ES的template模板
森 发表了文章 • 0 个评论 • 2474 次浏览 • 2021-09-30 09:30
通过python脚本迁移ES的template模板
通过python脚本迁移ES的template模板,从192.168.0.1 迁移到 192.168.0.2
json<br /> import base64<br /> import json<br /> <br /> import requests<br /> <br /> <br /> def putTemplate(templateName, templateDslJson):<br /> print("{0} 索引模板正在迁移中".format(templateName))<br /> <br /> res = requests.put("<a href="http://192.168.0.2:9200/_template/" rel="nofollow" target="_blank">http://192.168.0.2:9200/_template/</a>{0}".format(templateName), json=templateDslJson)<br /> print(res.status_code)<br /> print(res.content)<br /> <br /> <br /> def getTemplateDslJson():<br /> username = "elastic"<br /> password = "123456"<br /> user_info_str = username + ":" + password<br /> user_info = base64.b64encode(user_info_str.encode()) # 这个得到是个字节类型的数据<br /> headers = {<br /> "Authorization": "Basic {0}".format(user_info.decode()) # 这个就是需要验证的信息<br /> }<br /> url = "<a href="http://192.168.0.1:9200/_template/" rel="nofollow" target="_blank">http://192.168.0.1:9200/_template/</a>*_template"<br /> res = requests.get(url, headers=headers)<br /> print(res.status_code)<br /> return json.loads(res.content)<br /> <br /> <br /> if __name__ == '__main__':<br /> jsonTemplate = getTemplateDslJson()<br /> if isinstance(jsonTemplate, dict):<br /> for templateName in jsonTemplate:<br /> templateDslJson = jsonTemplate[templateName]<br /> putTemplate(templateName, templateDslJson)<br /> <br />
一个看似简单的问题,没有搞明白
pzw9696 回复了问题 • 5 人关注 • 8 个回复 • 2139 次浏览 • 2021-10-03 16:57