利用Elasticsearch搭建全球域名解析记录
前言
数据来源,由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搭建全球域名解析记录的更多相关文章
- centos  DNS服务搭建  DNS原理  使用bind搭建DNS服务器 配置DNS转发 配置主从  安装dig工具  DHCP  dhclient  各种域名解析记录  mydns DNS动态更新    第三十节课
		centos DNS服务搭建 DNS原理 使用bind搭建DNS服务器 配置DNS转发 配置主从 安装dig工具 DHCP dhclient 各种域名解析记录 mydns DNS动态更 ... 
- Kafka1  利用虚拟机搭建自己的Kafka集群
		前言: 上周末自己学习了一下Kafka,参考网上的文章,学习过程中还是比较顺利的,遇到的一些问题最终也都解决了,现在将学习的过程记录与此,供以后自己查阅,如果能帮助到其他人,自然是更好的. ... 
- Hadoop4  利用VMware搭建自己的hadoop集群
		前言: 前段时间自己学习如何部署伪分布式模式的hadoop环境,之前由于工作比较忙,学习的进度停滞了一段时间,所以今天抽出时间把最近学习的成果和大家分享一下. 本文要介绍的是如 ... 
- 利用Hexo搭建个人博客-环境搭建篇
		我是一个爱写博客进行总结分享的人.然而,有着热爱写博客并且深知写博客好处的我,却没有好好的把这个习惯坚持下来.如今毕业已经一年多了吧,每一次与师弟师妹们聊天,我总会意味深长的建议他们,一定要定期梳理总 ... 
- 利用hexo搭建博客
		利用Hexo搭建博客 以前用Octopress搭过博客,折腾了好久才弄出来,当时看到那巨难看的默认主题,繁琐的操作,一点写东西的欲望都没了. 一次逛微博,看见了Hexo.尝试了一下,真的很好用哦. 下 ... 
- 利用ThinkPHP搭建网站后台架构
		记录一下ThinkPHP搭建网站后台.调整好样式等操作步骤 下载好ThinkPHP(3.2.3),解压后将核心文件夹ThinkPHP以及index.php等文件复制到网站根目录如下图 对index.p ... 
- 利用 ELK 搭建 Docker 容器化应用日志中心
		利用 ELK 搭建 Docker 容器化应用日志中心 概述 应用一旦容器化以后,需要考虑的就是如何采集位于 Docker 容器中的应用程序的打印日志供运维分析.典型的比如SpringBoot应用的日志 ... 
- 架构师成长之路6.5 DNS服务器搭建(添加记录、负载均衡、DNS视图)
		点击返回架构师成长之路 架构师成长之路6.5 DNS服务器搭建(添加记录.负载均衡.DNS视图) 部署主DNS : 点击 部署从DNS : 点击 1.添加A记录.CNAME记录.MX记录.PTR记录 ... 
- 利用 nodeJS 搭建一个简单的Web服务器(转)
		下面的代码演示如何利用 nodeJS 搭建一个简单的Web服务器: 1. 文件 WebServer.js: //-------------------------------------------- ... 
随机推荐
- J - Relief grain HDU - 5029
			Relief grain Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 100000/100000 K (Java/Others)T ... 
- virtualbox+vagrant学习-3-Vagrant Share-2-HTTP Sharing
			HTTP Sharing Vagrant Share可以创建一个可公开访问的URL端点来访问在Vagrant环境中运行的HTTP服务器.这被称为“HTTP共享”,在使用Vagrant Share时默认 ... 
- 为什么 token可以防止 csrf?
			Token被用户端放在Cookie中(不设置HttpOnly),同源页面每次发请求都在请求头或者参数中加入Cookie中读取的Token来完成验证.CSRF只能通过浏览器自己带上Cookie,不能操作 ... 
- 垂直方向兼容显示的内容多少的情况样式Flex布局
			使用flex弹性布局,无论里面的元素显示几个,都会居中显示,父元素设置成如下样式 display: flex; flex-direction: column; justify-content: cen ... 
- java中判断图片格式并且等比例压缩图片
			最近项目中需要判断上传的图片必须是png,jpg,gif三种格式的图片,并且当图片的宽度大于600px时,压缩图片至600px,并且等比例的压缩图片的高度. 具体的实现形式: 大致的思路是: 判断根据 ... 
- P1070 道路游戏
			题目描述 小新正在玩一个简单的电脑游戏. 游戏中有一条环形马路,马路上有 n 个机器人工厂,两个相邻机器人工厂之间由一小段马路连接.小新以某个机器人工厂为起点,按顺时针顺序依次将这 n 个机器人工厂编 ... 
- C++网络爬虫的实现——WinSock编程
			写了一个网络爬虫,可以抓取网上的图片. 需要给定初始网站即可. 在vs2010中编译通过. 需要使用多字节字符集进行编译, vs2010默认的是Unicode字符集. 编译后,运行即可,有惊喜哦!!! ... 
- 系统重装后恢复Oracle数据库
			这周装系统的固态盘坏了,固态硬盘用到坏也是第一次碰到....只能新买个硬盘重装系统了.到了Oracle数据库恢复那一步了,其实很简单.只要没把数据库安装路径放在系统盘就行.*^____^* 先找到重装 ... 
- GoLand(二)语言结构和基础语法
			Infi-chu: http://www.cnblogs.com/Infi-chu/ 一.Go语言结构1.Go语言有6大部分组成,分别是:包声明.引入包.函数.变量.语句或表达式.注释2.输出一个He ... 
- FPGA中ROM与RAM相关知识总结(五)
			把看到的关于存储的一些东西整理一下,有些话来自于网友,所以还是那句话,看到的人要带着自己的思考去看,记住尽信书不如无书,fighting!!! 一.基本概念 最熟悉的两个词语应该是RAM与ROM,RA ... 
