千家信息网

solr索引数据的方法是什么

发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,这篇文章主要介绍"solr索引数据的方法是什么",在日常操作中,相信很多人在solr索引数据的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"solr索引数据的
千家信息网最后更新 2024年09月22日solr索引数据的方法是什么

这篇文章主要介绍"solr索引数据的方法是什么",在日常操作中,相信很多人在solr索引数据的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"solr索引数据的方法是什么"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

本教程以solr4.8作为测试环境,jdk版本需要1.7及以上版本。

准备

本文假设你对Java有初中级以上水平,因此不再介绍Java相关环境的配置。下载解压缩solr,在example目录有start.jar文件,启动:

1

java -jar start.jar

浏览器访问:http://localhost:8983/solr/,你看到的就是solr的管理界面

索引数据

服务启动后,目前你看到的界面没有任何数据,你可以通过POSTing命令向Solr中添加(更新)文档,删除文档,在exampledocs目录包含一些示例文件,运行命令:

1

java -jar post.jar solr.xml monitor.xml

上面的命令是向solr添加了两份文档,打开这两个文件看看里面是什么内容,solr.xml里面的内容是:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

SOLR1000

Solr, the Enterprise Search Server

Apache Software Foundation

software

search

Advanced Full-Text Search Capabilities using Lucene

OptimizedforHigh Volume Web Traffic

Standards Based Open Interfaces - XML and HTTP

Comprehensive HTML Administration Interfaces

Scalability - Efficient Replication to other Solr Search Servers

Flexible and Adaptable with XML configuration and Schema

Good unicode support: héllo (hello with an accent over the e)

0

10

true

2006-01-17T00:00:00.000Z

表示向索引中添加一个文档,文档就是用来搜索的数据源,现在就可以通过管理界面搜索关键字"solr",具体步骤是:

点击页面下的Execute Query按钮后右侧就会显示查询结果,这个结果就是刚才导入进去的solr.xml的json格式的展示结果。solr支持丰富的查询语法,比如:现在想搜索字段name里面的关键字"Search"就可以用语法name:search,当然如果你搜索name:xxx就没有返回结果了,因为文档中没有这样的内容。

数据导入

导入数据到Solr的方式也是多种多样的:

  • 可以使用DIH(DataImportHandler)从数据库导入数据

  • 支持CSV文件导入,因此Excel数据也能轻松导入

  • 支持JSON格式文档

  • 二进制文档比如:Word、PDF

  • 还能以编程的方式来自定义导入

更新数据

如果同一份文档solr.xml重复导入会出现什么情况呢?实际上solr会根据文档的字段id来唯一标识文档,如果导入的文档的id已经存在solr中,那么这份文档就被最新导入的同id的文档自动替换。你可以自己尝试试验一下,观察替换前后管理界面的几个参数:Num Docs,Max Doc,Deleted Docs的变化。

  • numDocs:当前系统中的文档数量,它有可能大于xml文件个数,因为一个xml文件可能有多个标签。

  • maxDoc:maxDoc有可能比numDocs的值要大,比如重复post同一份文件后,maxDoc值就增大了。

  • deletedDocs:重复post的文件会替换掉老的文档,同时deltedDocs的值也会加1,不过这只是逻辑上的删除,并没有真正从索引中移除掉

删除数据

通过id删除指定的文档,或者通过一个查询来删除匹配的文档

1

2

java -Ddata=args -jar post.jar"SOLR1000"

java -Ddata=args -jar post.jar"name:DDR"

此时solr.xml文档从索引中删除了,再次搜"solr"时不再返回结果。当然solr也有数据库中的事务,执行删除命令的时候事务自动提交了,文档就会立即从索引中删除。你也可以把commit设置为false,手动提交事务。

1

java -Ddata=args -Dcommit=false-jar post.jar"3007WFP"

执行完上面的命令时文档并没有真正删除,还是可以继续搜索相关结果,最后可以通过命令:

1

java -jar post.jar -

提交事务,文档就彻底删除了。现在把刚刚删除的文件重新导入Solr中来,继续我们的学习。

删除所有数据:

1

http://localhost:8983/solr/collection1/update?stream.body=*:*&commit=true

删除指定数据

1

http://localhost:8983/solr/collection1/update?stream.body=title:abc&commit=true

多条件删除

1

http://localhost:8983/solr/collection1/update?stream.body=title:abc AND name:zhang&commit=true

查询数据

查询数据都是通过HTTP的GET请求获取的,搜索关键字用参数q指定,另外还可以指定很多可选的参数来控制信息的返回,例如:用fl指定返回的字段,比如f1=name,那么返回的数据就只包括name字段的内容

1

http://localhost:8983/solr/collection1/select?q=solr&fl=name&wt=json&indent=true

  • 排序

    Solr提供排序的功能,通过参数sort来指定,它支持正序、倒序,或者多个字段排序

    • q=video&sort=price desc

    • q=video&sort=price asc

    • q=video&sort=inStock asc, price desc
      默认条件下,Solr根据socre倒序排列,socre是一条搜索记录根据相关度计算出来的一个分数。

  • 高亮

    网页搜索中,为了突出搜索结果,可能会对匹配的关键字高亮出来,Solr提供了很好的支持,只要指定参数:

    • hl=true #开启高亮功能

    • hl.fl=name #指定需要高亮的字段

1

http://localhost:8983/solr/collection1/select?q=Search&wt=json&indent=true&hl=true&hl.fl=features

返回的内容中包含:

1

2

3

4

5

"highlighting":{

"SOLR1000":{

"features":["Advanced Full-Text Search Capabilities using Lucene"]

}

}

文本分析

文本字段通过把文本分割成单词以及运用各种转换方法(如:小写转换、复数移除、词干提取)后被索引,schema.xml文件中定义了字段在索引中,这些字段将作用于其中.
默认情况下搜索"power-shot"是不能匹配"powershot"的,通过修改schema.xml文件(solr/example/solr/collection1/conf目录),把features和text字段替换成"text_en_splitting"类型,就能索引到了。

1

2

3

...

修改完后重启solr,然后重新导入文档

1

java -jar post.jar *.xml

现在就可以匹配了

  • power-shot->Powershot

  • features:recharing->Rechargeable

  • 1 gigabyte -> 1G

到此,关于"solr索引数据的方法是什么"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

文档 数据 索引 文件 字段 搜索 结果 方法 命令 内容 参数 学习 支持 查询 事务 关键 关键字 高亮 可以通过 就是 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 如何把java连接数据库 jdbc怎么对数据库更新 手机游戏连不上服务器 一个域有且只有一个主域名服务器 棋牌比较有软件开发公 网络技术公司门槛 奉化专业软件开发平台 怎么看服务器是不是装了两个系统 网络安全的小报图片 电脑服务器老断开是怎么回事 数据库表里的字段 反恐网络安全国旗下讲话 服务器僵尸 app 服务器 开发 签完软件开发合同后悔了 浦东新区常规软件开发服务收费 网络安全大赛搜了战队 网络安全白帽子招聘 驻马店软件开发公司电话 wap应用商店安装软件开发 泰州手机软件开发中心 用数据库做资料 一个域有且只有一个主域名服务器 黄岛区分销软件开发哪家便宜 我的世界梦想斗罗服务器在哪里进 公共科目网络安全法考题答案 公安开展网络安全教育会议 大学生网络技术是干什么的 运行网络连接服务器无响应 数据库怎么备份一条数据
0