查 * 是查不出来的,因为把他当成字符串进行查询了。
分页:
引依赖:
<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>
application.yml:
spring:
data:
solr: host:http://192.168.126.132:8983/solr
server:
port: 5050
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>
Main方法:
@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);
}
}
控制层:
@RestController
public class SolrController {
@Autowired
private PersonDao dao;
@GetMapping("/queryNews")
public Page<Person> queryNews(String keyword){
PageRequest pr = new PageRequest(1,2);
return dao.findByDesc(keyword,pr);
}
}
dao层:
public interface PersonDao extends SolrCrudRepository<Person, String> {
public Page<Person> findByDesc(String keyword,Pageable page);
//注意:Pageableo本身带有排序的构造参数,所以不需要传,而且还不能传, page 只能放在pageableo 入分页.
}
排序:
PageRequest pr = new PageRequest(1,2,new Sort(Direction.ASC,"age_i"));
Sort:只有被索引的字段才能排序,不支持String 类型的排序
只有加了indexed=“true”. 建立倒排索引,建了倒排索引才能排序
字符串排一般都是分组,然后进行排序 。比如:性别分组。