BoomMan

爱生活,爱Coding.....

Solr从入门到放弃-不完全教程

相关文档:

W3c的Solr文档 比较新也比较全:https://www.w3cschool.cn/solr_doc/

安装:

Solr官网:http://lucene.apache.org/solr/
linux和windows,mac都可以安装,对应自己的版本进行安装即可

在测试了linux和windows之后,对于首次接触solr,请使用windows先学习

启动

请根据下图的路径和 cmd命令启动: so easy!

这里写图片描述

Admin介绍

Admin Solr :http://localhost:8983
见到如下图界面,说明你已经成功启动
这里写图片描述

关于详细的Admin Solr界面操作
可以百度 admin solr 管理界面介绍 or:https://www.cnblogs.com/arli/p/6837931.html

开始表演

第一:创建core

这里写图片描述

solr-7.3.1\server\solr\configsets_default\conf里的全部文件复制->solr-7.3.1\server\solr\XXX

第二:写入一些数据
这里写图片描述

第三 查询

这里写图片描述

SolrJ操作Solr

参考链接: https://blog.csdn.net/xiaokang123456kao/article/details/72846591

Solr查询语法

https://blog.csdn.net/xiaokang123456kao/article/details/72846591

技术栈

项目整体技术栈
项目采用Spring2.0.0部署
Junit4测试

操作分为 Spring Data JPA Solr

SolrJ两种方式

查询总结

时间查询:查询某一天的数据

通常mysql中我们可以 格式化时间到天 然后相等判断 也可以 > <具体到一天

在solr中代码如下

//查询2015年8月28日当天的数据[] 包含范围检索,如检索某时间段记录,包含头尾,date:[200707 TO 200710],{}不包含范围检索,如检索某时间段记录,不包含头尾)  
publishTime:publishTime:[2015-08-28T00:00:00Z TO 2015-08-28T23:59:59.999Z]  
//查询2015年8月28日以后的数据,包含当天的数据  
publishTime:[publishTime:[2015-08-28T00:00:00Z TO *]  
//查询2015年8月28日以前的数据  
publishTime:[publishTime:[* TO 2015-08-28T00:00:00Z]  
//或  
publishTime:[publishTime:[* TO 2015-08-27T23:59:59.999Z]

在我初次学习过程中并没有发现solr有分组 取最大值,类似mysql group by max sum min 等函数
es貌似是有的,如果有欢迎留言哦

异常总结

1.application配置solr-host出现错误

原错误配置:spring.data.solr.host=http://192.168.123.100:8983/solr

异常已经贴出:org.apache.solr.client.solrj.impl.HttpSolrClient$RemoteSolrException

修正后:spring.data.solr.host=http://192.168.123.100:8983/solr/demo

host配置的应为具体core
org.apache.solr.client.solrj.impl.HttpSolrClient$RemoteSolrException: Error from server at http://192.168.123.100:8983/solr: Expected mime type application/octet-stream but got text/html. <html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
<title>Error 404 Not Found</title>
</head>
<body><h2>HTTP ERROR 404</h2>
<p>Problem accessing /solr/update. Reason:
<pre>    Not Found</pre></p>
</body>
</html>


    at org.apache.solr.client.solrj.impl.HttpSolrClient.executeMethod(HttpSolrClient.java:580)
    at org.apache.solr.client.solrj.impl.HttpSolrClient.request(HttpSolrClient.java:279)
    at org.apache.solr.client.solrj.impl.HttpSolrClient.request(HttpSolrClient.java:268)
    at org.apache.solr.client.solrj.SolrRequest.process(SolrRequest.java:160)
    at org.apache.solr.client.solrj.SolrClient.add(SolrClient.java:173)
    at org.apache.solr.client.solrj.SolrClient.add(SolrClient.java:138)
    at org.apache.solr.client.solrj.SolrClient.add(SolrClient.java:152)
    at com.boomman.solrdemo.UserService.SetSolr(UserService.java:30)
    at com.boomman.solrdemo.UserServiceTest.setSolr(UserServiceTest.java:25)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
    at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
    at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
    at org.springframework.test.context.junit4.statements.RunBeforeTestExecutionCallbacks.evaluate(RunBeforeTestExecutionCallbacks.java:73)
    at org.springframework.test.context.junit4.statements.RunAfterTestExecutionCallbacks.evaluate(RunAfterTestExecutionCallbacks.java:83)
    at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:75)
    at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:86)
    at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:84)
    at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:251)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97)
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
    at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
    at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:190)
    at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
    at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
    at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
    at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
    at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)

搜索引擎

墙裂推荐:http://www.cnblogs.com/arli/p/6129035.html

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/boom_man/article/details/80605278
个人分类: Java-Web应用
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭