solr这里主要讲solr查询方法
进入网站spring官网到
选择2.1.17进入
再次进入3.2. Query methods可以了
第一步
package cn.pk;
import org.apache.solr.client.solrj.SolrClient;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.data.solr.core.SolrTemplate;
@SpringBootApplication
public class SolrMain {
@Bean
public SolrTemplate solrTemplate(SolrClient client) {
return new SolrTemplate(client);
}
public static void main(String[] args) {
SpringApplication.run(SolrMain.class, args);
}
}
第二步建立html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js">
</script>
<script>
function query(){
$.ajax({
url:'queryNews',
dataType:'JSON',
data:'keyword='+$("#myKeyword").val(),
type:'get',
success:function(r){
$("#myNews").text(JSON.stringify(r));
}
})
}
</script>
</head>
<body>
新闻:<input id="myKeyword" type="text" name="keyword"/><button onclick="query()">搜索</button>
<div id="myNews">
</div>
</body>
</html>
建立yml
spring:
data:
solr:
host: http://192.168.211.134:8983/solr
server:
port: 8888
第三步建立属性
package cn.pk.entity;
import org.apache.solr.client.solrj.beans.Field;
import org.springframework.data.solr.core.mapping.SolrDocument;
@SolrDocument(solrCoreName="mycore")
public class Person {
private String id;
@Field("country_s")
private String country;
@Field("name_s")
private String name;
@Field("desc_ik")
private String desc;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getCountry() {
return country;
}
public void setCountry(String country) {
this.country = country;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
}
package cn.pk.entity;
import org.apache.solr.client.solrj.beans.Field;
import org.springframework.data.solr.core.mapping.SolrDocument;
@SolrDocument(solrCoreName="mycore")
public class News {
private String id;
@Field("newtitle_ik")
private String newtitle;
@Field("age_i")
private int age;
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getNewtitle() {
return newtitle;
}
public void setNewtitle(String newtitle) {
this.newtitle = newtitle;
}
}
第四步建立接口
package cn.pk.dao;
import java.util.List;
import org.springframework.data.solr.repository.Query;
import org.springframework.data.solr.repository.SolrCrudRepository;
import cn.pk.entity.News;
import cn.pk.entity.Person;
public interface PersonDao extends SolrCrudRepository<Person,String> {
public List<Person> findByDesc(String keyword);
//public Page<Person> findByDesc(String keyword,Pageable page);(分页)
@Query("name_ik:?0")
public List<Person> queryByDesc(String keyword);
}
第伍步
package cn.pk.controller;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.solr.core.SolrTemplate;
import org.springframework.data.solr.core.query.SimpleQuery;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import cn.pk.dao.PersonDao;
import cn.pk.entity.News;
import cn.pk.entity.Person;
@RestController
public class SolrController {
//@Autowired
// SolrTemplate st;
@Autowired
private PersonDao dao;
@GetMapping("/queryNews")
<!--public List<Person> queryNews(String keyword){
//SimpleQuery sq=new SimpleQuery("newtitle_ik"+keyword);
//List<News> ss=st.query(sq, News.class);
List<Person> findByDesc=dao.findByDesc(keyword);
//List<Person> findByDesc=dao.queryByDesc(keyword);
return findByDesc;
}-->这里是一部分
//分页和排序
public Page<Person> queryNews(String keyword){
PageRequest pr=new PageRequest(0, 2,new Sort(Direction.ASC,"age_i"));
return dao.findByDesc(keyword,pr);
}
}
第六步建依赖
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.10.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-solr</artifactId>
</dependency>
</dependencies>
见图如下: