前言

数据来源,由Rapid7收集并提供下载
https://scans.io/study/sonar.fdns

下载Elasticsearch 2.3

ElasticSearch是一个基于Lucene开发的搜索服务器,具有分布式多用户的能力,ElasticSearch是用Java开发的开源项目(Apache许可条款),基于Restful Web接口,能够达到实时搜索、稳定、可靠、快速、高性能、安装使用方便,同时它的横向扩展能力非常强,不需要重启服务。
Elasticsearch 高版本和低版本有细微的差别,大多数中文文档都是关于低版本的
https://www.elastic.co/downloads/past-releases/elasticsearch-2-3-0

安装head插件

elasticsearch-head是一个web前端工具,可以用来和ElasticSearch集群进行可视化交互

安装好jdk

bin/elasticsearch.bat
bin/plugin.bat install mobz/elasticsearch-head

https://github.com/mobz/elasticsearch-head

建立索引并创建映射

PUT /test

{
"settings": {
"index": {
"number_of_shards": "5",
"number_of_replicas": "0"
}
},
"mappings": {
"my_type": {
"properties": {
"title": {
"type": "string",
"index": "not_analyzed"
},
"name" : {
"type" : "string"
}
}
}
}
}

测试映射

GET /test/_analyze

{
"field": "title",
"text": "Blacdfdsfk-cats@qq.com"
}

添加单条数据

POST /test/my_type/

{
"title": "Blacdfdsfk-cats@qq.com",
"name": "Blacdfdsfk-cats@qq.com",
}

简单搜索

GET /test/my_type/_search?q=name:cats

https://www.elastic.co/guide/en/elasticsearch/reference/2.3/search-uri-request.html

利用请求体进行结构化搜索

GET /test/my_type/_search?q=name:cats

{
"query": {
"prefix": {
"name": "blacdfdsfk"
}
}
}

自定义分析器

包含字符过滤器,分词器,标记过滤器三部分

由于是dns数据,需要根据特定的情况自定义分析器,将词逆转,分割符设为”.”等

PUT /my_index
{
"settings": {
"analysis": {
"analyzer": {
"domain_name_analyzer": {
"filter":"lowercase",
"tokenizer": "domain_name_tokenizer",
"type": "custom"
}
},
"tokenizer": {
"domain_name_tokenizer": {
"type": "PathHierarchy",
"delimiter": ".",
"reverse": true
}
}
}
}
} PUT /test_index/_mapping/site
{
"properties": {
"url": {
"type": "string",
"analyzer": "domain_name_analyzer"
}
}
}

导入数据测试

PUT /dnsrecords
{
"settings": {
"index": {
"number_of_shards": "5",
"number_of_replicas": "0"
},
"analysis": {
"analyzer": {
"domain_name_analyzer": {
"filter":"lowercase",
"tokenizer": "domain_name_tokenizer",
"type": "custom"
}
},
"tokenizer": {
"domain_name_tokenizer": {
"type": "PathHierarchy",
"delimiter": ".",
"reverse": true
}
}
}
},
"mappings": {
"forward": {
"properties": {
"domain": {
"type": "string",
"analyzer": "domain_name_analyzer"
},
"type" : {
"type" : "string",
"index": "not_analyzed"
},
"record" :{
"type": "string",
"index": "not_analyzed"
}
}
}
}
}

查询

GET /dnsrecords/forward/_search HTTP/1.1

{
"query": {
"term": {
"domain": "qidian.com"
}
}
}

参考
https://github.com/Pynow/elasticsearch
http://wiki.jikexueyuan.com/project/elasticsearch-definitive-guide-cn/

利用Elasticsearch搭建全球域名解析记录的更多相关文章

  1. centos DNS服务搭建 DNS原理 使用bind搭建DNS服务器 配置DNS转发 配置主从 安装dig工具 DHCP dhclient 各种域名解析记录 mydns DNS动态更新 第三十节课

    centos  DNS服务搭建  DNS原理  使用bind搭建DNS服务器 配置DNS转发 配置主从  安装dig工具  DHCP  dhclient  各种域名解析记录  mydns DNS动态更 ...

  2. Kafka1 利用虚拟机搭建自己的Kafka集群

    前言:       上周末自己学习了一下Kafka,参考网上的文章,学习过程中还是比较顺利的,遇到的一些问题最终也都解决了,现在将学习的过程记录与此,供以后自己查阅,如果能帮助到其他人,自然是更好的. ...

  3. Hadoop4 利用VMware搭建自己的hadoop集群

    前言:       前段时间自己学习如何部署伪分布式模式的hadoop环境,之前由于工作比较忙,学习的进度停滞了一段时间,所以今天抽出时间把最近学习的成果和大家分享一下.       本文要介绍的是如 ...

  4. 利用Hexo搭建个人博客-环境搭建篇

    我是一个爱写博客进行总结分享的人.然而,有着热爱写博客并且深知写博客好处的我,却没有好好的把这个习惯坚持下来.如今毕业已经一年多了吧,每一次与师弟师妹们聊天,我总会意味深长的建议他们,一定要定期梳理总 ...

  5. 利用hexo搭建博客

    利用Hexo搭建博客 以前用Octopress搭过博客,折腾了好久才弄出来,当时看到那巨难看的默认主题,繁琐的操作,一点写东西的欲望都没了. 一次逛微博,看见了Hexo.尝试了一下,真的很好用哦. 下 ...

  6. 利用ThinkPHP搭建网站后台架构

    记录一下ThinkPHP搭建网站后台.调整好样式等操作步骤 下载好ThinkPHP(3.2.3),解压后将核心文件夹ThinkPHP以及index.php等文件复制到网站根目录如下图 对index.p ...

  7. 利用 ELK 搭建 Docker 容器化应用日志中心

    利用 ELK 搭建 Docker 容器化应用日志中心 概述 应用一旦容器化以后,需要考虑的就是如何采集位于 Docker 容器中的应用程序的打印日志供运维分析.典型的比如SpringBoot应用的日志 ...

  8. 架构师成长之路6.5 DNS服务器搭建(添加记录、负载均衡、DNS视图)

    点击返回架构师成长之路 架构师成长之路6.5 DNS服务器搭建(添加记录.负载均衡.DNS视图)  部署主DNS : 点击 部署从DNS : 点击 1.添加A记录.CNAME记录.MX记录.PTR记录 ...

  9. 利用 nodeJS 搭建一个简单的Web服务器(转)

    下面的代码演示如何利用 nodeJS 搭建一个简单的Web服务器: 1. 文件 WebServer.js: //-------------------------------------------- ...

随机推荐

  1. Sequelize-nodejs-7-Associations

    Associations关联性 This section describes the various association types in sequelize. When calling a me ...

  2. Jenkins启动和停止服务

    1.怎么启动Jenkins? step1:进入到Jenkins的war包所在的目录. 如果是win7及以上版本,直接打开Jenkins的war包所在的目录,在地址栏敲cmd,回车. 上述结果和进入cm ...

  3. Spring源码分析(三)容器核心类

    摘要:本文结合<Spring源码深度解析>来分析Spring 5.0.6版本的源代码.若有描述错误之处,欢迎指正. 在上一篇文章中,我们熟悉了容器的基本用法.在这一篇,我们开始分析Spri ...

  4. fio是如何运行的?

    本文主要介绍fio是如何运行的,并且以单线程.单job为例 fio的入口在fio.c中的main函数,下面列出了main函数,此处只出示了一些调用的关键函数 int main(int argc, ch ...

  5. iOS开发-Object-C获取手机设备信息(UIDevice)

    一.获取UiDevice设备信息 // 获取设备名称 NSString *name = [[UIDevice currentDevice] name]; // 获取设备系统名称 NSString *s ...

  6. 前端获取table表格里面的所有(单个)tr和所有(单个)td,用js实现

    今天在做项目遇到了一个问题,就是获取不到table里面的td. 本来是打算使用jq来解决的,但网上大部分人使用的都是获取到table标签然后点出他的children函数,我的前端页面没有这个函数,然后 ...

  7. jQuery----五星好评实现

    在美团.淘宝.京东等网页上,有许多商品.服务评价页面,五星好评功能很常见,本文利用jQuery实现五星好评功能. 案例图片:                                       ...

  8. go语言实战笔记(二)

     码代码之前一定要安装go,哈哈哈哈,反正我只装goland然后写不了代码报错,卡在第一段代码哈哈哈哈哈哈 新建项目goproject 新建src文件夹 新建main文件夹 新建第一个go文件 开始写 ...

  9. 【转载】COM 组件设计与应用(十)——IDispatch 接口 for VC.NET

    原文:http://vckbase.com/index.php/wv/1225.html 一.前言 终于写到了第十回,我也一直期盼着写这回的内容耶,为啥呢?因为自动化(automation)是非常常用 ...

  10. js 知识点整理

    1. indexOf 与String类似,Array也可以通过indexOf()来搜索一个指定的元素的位置: var arr = [10, 20, '30', 'xyz']; arr.indexOf( ...