作者:余枫

文档编写目的

在上一篇《6.2.0-使用Solr7对多种格式文件建立全文索引》中介绍了如何在CDH6.2.0中使用Solr7对多种格式的文件进行全文索引,测试中使用的主要是非结构化的word、ppt、pdf等非结构化的数据,很多时候需要使用Solr对结构化的数据进行索引,根据其中某些字段进行精准的查询或者范围查询,本文档将介绍如何使用Solr对csv文件建立全文索引。

  • 内容概述

1.准备测试数据

2.建立索引

3.进行查询验证

4.总结

  • 测试环境

1.CM和CDH版本为6.2.0

2.Solr版本为7.4.0

3.集群未启用kerberos

4.采用root用户

  • 前置条件

1.CDH集群已安装成功并正常运行

2.集群已添加Solr服务

准备测试数据

1.本次测试准备生成一个1GB左右大小的csv文件,该数据文件共有十个字段,其中有int、double、string、date以及中文文本和英文文本等类型,多一些数据类型方便测试,下面是生成数据的Java代码

https://github.com/fayson/cdhproject/blob/master/generatedata/src/main/java/com/cloudera/solr/GenerateSolrTestData.java

生成的数据一共60W条,大小1.1GB,十个字段分别为number,firstDouble,firstNo,secondDouble,secondNo,jarName,enText,cnText,firstTime,secondTime

建立索引

在Solr Web页面,选择左侧的【Collections】,然后单击【Add collection】。创建一个Collection

Collection创建成功

将准备好的csv文件导入到Solr中,Solr自带的post.jar提供了这个功能,下面是post.jar的用法

参考help命令,使用下面的命令将csv文件导入到Solr中,并建立全文索引

java -Durl=http://localhost:8983/solr/test0723/update -Dtype=text/csv -Dc=test0723 -jar post.jar /tmp/solr/file/data.csv

csv文件导入成功,下一步在Solr上进行查询验证

进行查询验证

1.进入query界面

2.根据单个字段查询

  • number

  • jarName

  • 时间字段范围查询

3.根据英文文本中的内容查找

4.根据中文文本中的内容进行查找

5.使用字段的组合进行查找

  • 在某个时间范围内的number在1到10000之间的英文文本中包含Cloudera的记录

  • 在number30000到40000的记录中,firstDouble大于200,secondDouble小于500的记录

  • jarName以spark开头,且中文文本中包含“查询”的记录

总结

1.与上篇文档中使用的dataimport的方式导入数据建立索引不同,本文档使用Solr自带的post.jar将csv文件导入并创建索引,经过查询测试,该方式能够正常使用。

2.Solr在使用时间格式进行查询时,只能使用UTC格式,Solr只能识别这种格式的时间,例如2018-03-06T02:37:02Z。

3.在使用多条件查询时,可以使用fq,在fq中可以添加多个检索条件,其中范围检索可以使用{}、[]、TO搭配来实现,例如firstTime:[2018-01-01T00:00:00Z TO 2018-01-31T23:59:59Z],表示firstTime在1月1日到1月31日之间的数据。

4.Solr的query页面还有许多参数可以使用,例如sort可以对字段进行排序,start、rows可以定义分页的数量,wt可以指定检索结果的格式等等。

Fayson的github:

https://github.com/fayson/cdhproject

模拟便于直接存取的索引文件结构_07016.2.0使用Solr7对结构化csv文件建立全文索引...相关推荐

  1. 搜索引擎Lucene(2):索引文件结构及格式

    1.索引总体结构 1.1.索引层次结构 Lucene的索引结构主要分以下几个层次: 索引结构.png 索引(Index): 在Lucene中一个索引是放在一个文件夹中的.同一文件夹中的所有的文件构成一 ...

  2. 软件架构设计师-ArmStrong公理系统-函数依赖-索引文件结构-基础知识点-考试论文应试技巧

    文章目录 1.函数依赖 2.索引文件结构 3.考试论文应试技巧 3.1.法则一多总结,要全面 3.2.法则二平时多积累,临场自不急 3.3.法则三条理清晰,开门见山 3.4.法则四图文并茂,能收奇效 ...

  3. 文件管理-索引文件结构

    1.什么是索引文件结构? 这是一种非常巧妙的文件结构,因为这种结构的本身在不做扩展的情况下容量很有限,但是在做扩展后,可以将容量扩大很多倍. 2.它是干嘛的? 用于文件容量扩展 3.它该如何学习? 一 ...

  4. 复杂的结构化存取(一)

    为什么80%的码农都做不了架构师?>>>    之所以说复杂, 就是区别与以前谈到的 结构化文件存取; 这种复杂的结构化文件也有叫做"复合文档". 有些文档不是结 ...

  5. 数据结构源码笔记(C语言):索引文件建立和查找

    //实现索引文件建立和查找算法#include<stdio.h> #include<malloc.h> #include<string.h> #include< ...

  6. python为什么从0开始_为什么大多数编程语言中,索引都是从0开始

    为什么大多数编程语言中,索引都是从0开始 世界上绝大多数语言,但凡涉及到了索引这个概念,索引都是从0开始的,对于初学者,难免觉得别扭,毕竟生活中,但凡涉及到和顺序有关的概念,都是从1开始的,那么为什么 ...

  7. java有效索引范围_Java索引超出范围:0

    我拼命试图找出一种方法来阻止"字符串索引超出范围:0"错误--只要我不输入任何内容然后继续执行,就会发生这种情况: static String getRef(Scanner Key ...

  8. 海量结构化数据存储技术揭秘:Tablestore存储和索引引擎详解

    前言 表格存储Tablestore是阿里云自研的面向海量结构化数据存储的Serverless NoSQL多模型数据库.Tablestore在阿里云官网上有各种文档介绍,也发布了很多场景案例文章,这些文 ...

  9. Python生成CSV文件模拟某小区用户手机通话记录

    好消息:"Python小屋"编程比赛正式开始 推荐图书: <Python程序设计(第3版)>,(ISBN:978-7-302-55083-9),董付国,清华大学出版社, ...

最新文章

  1. c# 非阻塞算法_c#创建非阻塞tcp通信
  2. 哈佛MIT坐镇的波士顿,正式宣布政府禁用人脸识别
  3. matlab mnl,LaTex中插入VISO 和 MATLAB 经验总结
  4. yield的用法详解
  5. c++容器定义、初始化、赋值
  6. Oracle分析函数详述
  7. CF 1529B. Sifid and Strange Subsequences
  8. 聚类算法——Birch详解
  9. 微信服务通知消息找回_如何通过微信第三方平台群发服务号消息通知?
  10. SQLi LABS Less-31
  11. Mac唤醒后无声的一种解决方法
  12. 使用http-server搭建web服务器
  13. opengauss数据库常用SQL语句
  14. 牛客小白月赛1 F.三视图
  15. B树,B+树,树,二叉树,满二叉树,完全二叉树,二叉搜索树,平衡二叉树,
  16. macbook air 卸载java,macbook air如何卸载软件 macbook air卸载软件的方法
  17. 高可用架构设计(3) -电商商品详情页缓存背景及框架说明
  18. 高3老师给大一学生的一封信
  19. 前端实现文件上传(点击+拖拽)
  20. 关于 SecureFx传输远程服务器中文显示乱码 的解决方法

热门文章

  1. 环形线圈车辆检测器突破了LOOP-LOCK
  2. 何时创建MVC应用程序
  3. 自适应自旋锁--吞吐量和延迟以及管理开销的折中
  4. 开发者必备Mysql命令
  5. 14 MySQL--事务函数与流程控制
  6. centos7 yum 安装mariadb
  7. 机器学习基石笔记-Lecture 14 Regularization
  8. java单例模式使用及注意事项
  9. 以Crypto++实现RSA加解密二进制数据
  10. 使用ELK实时分析SSH暴力破解