- 添加依赖,以及选择springboot版本、
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.18.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.241.130:8983/solr
server:
port: 8888
- 创建实体类
@ToString
@Data
@NoArgsConstructor
@AllArgsConstructor
@SolrDocument(solrCoreName="mycore")
public class Demo {
private String id;
@Field("name_ik")
private String name;
@Field("content_ik")
private String content;
}
- main方法
@SpringBootApplication
public class SolrMain {
public static void main(String[] args) {
SpringApplication.run(SolrMain.class, args);
}
}
- 控制层
@RestController
public class SolrController {
@Autowired
private SolrTemplate st;
@GetMapping("/queryDemos")
public List<Demo> queryDemo(String keyword){
Page<Demo> query = st.query(new SimpleQuery("content_ik:"+keyword), Demo.class);
return query.getContent();
}
}
- html
jquery的js文件地址(有网才可以使用)
<script src="https://ajax.aspnetcdn.com/ajax/jquery/jquery-1.9.0.min.js"></script>
<script>
function query(){
$.ajax({
url:'queryDemos'
,datatype:'json'
,data:'keyword='+$("#keyword").val()
,type:'get'
,success:function(r){
//json转换成字符串
$("#myDemos").text(JSON.stringify(r));
}
});
}
</script>
</head>
<body>
新闻:<input type="text" id="keyword" name="keyword"/>
<button onclick="query()">搜索</button>
<div id="myDemos"></div>
</body>
</html>
- 面向接口例子
public interface DemoDao extends SolrCrudRepository<Demo, String>{
public List<Demo> findByContent(String keyword);
@Query("desc_ik:?0")
public List<Person> query(String keyword);
}
- 分页
public Page findByDesc(String keyword,Pageable page)
分别代表页下标和每页展示的条数
- 排序 sort