solr

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>

见图如下:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值