目录
1.需求阐述
2.环境搭建
2.1安装Elasticsearch
检测是否安装了Elasticsearch
解压安装Elasticsearch
2.1.1启动Elasticsearch
2.2安装PyCharm
1)数据存储在阿里云内网的Mysql服务器上,需要通过一台服务器SSH隧道穿透取得数据。
2)首先明确,一张设计图需要多种素材来构成。数据量很大,需要操作的有两个表,称为stylepatternshow表,目前数据3w行(此表存着一张图片所需要的所有素材id)和 resource表,目前数据4w行(此表存着各种素材的信息,包括主图案【玫瑰,兰花等】,颜色【红色,黄色等】,技法【水墨画,电脑绘画等】)
3)现在是用户随意挑出想要的设计图的主图案,颜色,技法。 那么需要根据这个需求来推荐出设计图。
首先指出,这个数据库设计是有问题,并没有存储到 素材——>设计图 的信息,只存了设计图——>素材 的信息(设计图包含有需要素材的id)。就这个情况,正常编程思路是:根据需求,在resource表中分别找出对应主图案,颜色,技法的有哪些material列表,再去stylepatternshow表去找同时包含这三个material的设计图,达到目的,亲测需要30s。因此有必要建立搜索引擎,实现快速查找,结果平均1s,给力!
首先列出我的环境
openjdk version "1.8.0_171"
OpenJDK Runtime Environment (build 1.8.0_171-8u171-b11-0ubuntu0.16.04.1-b11)
OpenJDK 64-Bit Server VM (build 25.171-b11, mixed mode)
首先我们需要借助elasticsearch来建立搜索引擎(owe to 它的倒排索引),下面来搭建环境:(确保你有Java环境)
ps aux|grep elasticsearch
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.1.tar.gz
下载地址:https://www.elastic.co/downloads/elasticsearch
这里选择6.3.1版本的Elasticsearch,选择对应的安装包进行下载
解压到当前目录
tar -zxvf elasticsearch-6.3.1.tar.gz
/usr/local/elasticsearch
目录之中mv elasticsearch-6.3.1 /usr/local/elasticsearch
/usr/local/elasticsearch/config
目录,使用vi编辑器vi elasticsearch.yml
network.host: 0.0.0.0
/etc/sysctl.conf
文件,添加如下代码(若无将会出现下面常见问题1):vm.max_map_count=262144
sysctl -p
/etc/security/limits.conf
文件,在文件末尾添加如下代码(若无将会出现下面常见问题2):# python为登录服务器的用户名
python soft nofile 65536
python hard nofile 65536
python soft nproc 4096
python hard nproc 4096
值得注意的是,python为登录的用户名。修改退出保存之后,切记需要退出重新登录,配置才能生效!!!
进入/usr/local/elasticsearch
目录之中,输入以下命令,开始Elasticsearch服务:
./bin/elasticsearch
curl -XGET 'http://localhost:9200/'
或在浏览器URL直接键入http://localhost:9200/
{
"name" : "5U80WUO",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "F-WeQ0S_SQ2EkR7wAcslVg",
"version" : {
"number" : "6.3.1",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "eb782d0",
"build_date" : "2018-06-29T21:59:26.107521Z",
"build_snapshot" : false,
"lucene_version" : "7.3.1",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}
max virutal memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
解决方案,请看上面修改配置文件第2项
max number of threads [3750] for user [xxx] is too low, increase to at least [4096]
这个问题折磨了博主很久,在网上找到的答案都是修改
/etc/security/limits.d/90-nproc.conf
文件,可是我发现我系统中根本不存在此文件!!!后又请教高人朋友,说是可以修改/etc/security/limits.conf
文件,修改发现之后也根本不管用,原来修改该文件之后需要退出重新登录一下才管用。具体修改配置,请看修改配置文件
上面我们已经确保拥有JAVA环境,elasticsearch工具,接下来需要python的IDE,这里我选择PyCharm,功能强大。
在linux系统下打开网址:
http://www.jetbrains.com/pycharm/download/#section=linux,选择Community版,保存文件,即可开始下载。
下载好的文件的名称可能是 ‘pycharm-community-2017.2.3.tar.gz’
首先打开终端,然后通过下面的命令进入下载文件所在的文件夹:
cd ~/Downloads
或者如果文件夹是中文
cd ~/下载
然后,通过运行下面的命令找到你下载的文件的名字:
ls
得到文件名字后复制
tar -xvzf pycharm-community-2017.2.3.tar.gz -C ~ //~即为文件解压路径
!!!这里-C后面的~即为文件解压路径,可以自己选择,这里是解压到home目录下。
然后点击回车,解压完成就安装好了。
首先进入home(安装路径)目录
cd ~
运行 ls 命令查找文件夹名:
ls
查找到文件名以后复制,输入进下面的命令,进入 PyCharm 目录:
cd pycharm-community-2017.2.3/bin
最后,通过运行下面的命令来运行 PyCharm:
sh pycharm.sh &
然后就会运行pycharm,可以开始开发啦。
方法一:每次运行也需要使用cd命令,进入pycharm的安装路径下的bin目录,用sh命令来启动pycharm。
方法二:或者直接把绝对路径给出,方便把Pycharm安装到其他地方的同学。只使用一条命令就可以运行,很方便。:
sh ~/安装PyCharm的目录/pycharm-community-xxx.x.x/bin/pycharm.sh &
同时,觉得很难记难输入的pycharm-community-2018.1.1目录名,是可以自己修改的,可以修改为自己好记的名字。
=======================================================================================================
Now,环境都搭好了,下面开始编程开发吧!!!详见python下建立elasticsearch索引实现大数据搜索——之编程实现(二)