ElasticSearch分布式搜索引擎,和插件elasticsearch-head
Posted SmallCuteMonkey
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ElasticSearch分布式搜索引擎,和插件elasticsearch-head相关的知识,希望对你有一定的参考价值。
文章目录
1.安装ElasticSearch
- 进行相关的启动到bin目录下面双击elasticSerach.bat
- cmd进行启动 好的到bin目录然后输入elasticSearch.bat,就可以启动了
- 可以启动它的一个前端显示插件ElasticSearch-head
- 可以使用PostMan进行ElasticSearch的相关的增删改查操作
安装Node.js
node -v
可以查看Node的版本号
npm -v
2.使用ik分词器进行相关的搜索功能
- 需要下载相关的插件
- ik_smart
- ik_max_word(一般可以使用这个进行细分)
3.使用EleasticSearch进行相应的开发:
3.1.加入相关的依赖
3.2.配置相关的applicaton.yml文件
3.3.创建相关的实体类
3.4.创建dao层接口
3.5.创建相关的service层
3.6创建相关的controller层
<dependency>
<groupId>com.tensquare</groupId>
<artifactId>tensquare_common</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-elasticsearch</artifactId>
</dependency>
实体类Article:
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import java.io.Serializable;
/**
* 文章实体类
* Created by progr on 2019/3/12.
*/
@Document(indexName = "tensquare_article",type = "article")
public class Article implements Serializable {
@Id
private String id;
//是否索引,就是看该域是否能被搜索
//是否分词,就表示搜索的时候是整体匹配还是单词匹配
//是否存储,就是是否在页面上显示
@Field(index = true,analyzer="ik_max_word",searchAnalyzer = "ik_max_word")
private String title;//标题
@Field(index = true,analyzer="ik_max_word",searchAnalyzer = "ik_max_word")
private String content;//文章正文
private String state;//审核状态
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
}
ArticleSearchDao类:
/**
* 文章数据访问层接口
*/
public interface ArticleSearchDao extends
ElasticsearchRepository<Article,String> {
}
ArticleSearchService类:
@Service
public class ArticleSearchService {
@Autowired
private ArticleSearchDao articleSearchDao;
/**
* 增加文章
* @param article
*/
public void add(Article article){
articleSearchDao.save(article);
}
}
controller层:
@RestController
@CrossOrigin
@RequestMapping("/article")
public class ArticleSearchController {
@Autowired
private ArticleSearchService articleSearchService;
@RequestMapping(method = RequestMethod.POST)
public Result save(@RequestBody Article article){
articleSearchService.add(article);
return new Result(true, StatusCode.OK,"操作成功");
}
}
以上是关于ElasticSearch分布式搜索引擎,和插件elasticsearch-head的主要内容,如果未能解决你的问题,请参考以下文章
Elasticsearch插件开发指南:如何扩展Elasticsearch的功能
Windows下ElasticSearch的Head安装及基本使用