常用操作
搜索
索引为megacorp中的
employee类型文档中的
first_name属性为Janve
的文档行
get::http://localhost:9200/megacorp/employee/_search?q=first_name:Janve
还有第二种方式
http://localhost:9200/megacorp/employee/_search
{
"query":{
"match":{
"first_name":"Janve"
}
}
}
这是一个查询employe文档id属性为1的方法
get::http://localhost:9200/megacorp/employee/1
put:: 就是添加
在java中调用es的方法
配置
data:
elasticsearch:
repositories:
enabled: true
cluster-nodes: 127.0.0.1:9300
cluster-name: elasticsearch
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
代码
一、索引为auguigu book类型的文档类
import lombok.Data;
import org.springframework.data.elasticsearch.annotations.Document;
@Data
@Document(indexName = "atguigu",type = "book")
public class Book {
private Integer id;
private String bookName;
private String author;
}
二、book类型的文档查询方法接口
一个模糊查询BookName属性的方法
Integer id存储方式
import com.example.vuelog.elastic.bean.Book;
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
import java.util.List;
public interface BookRepository extends ElasticsearchRepository<Book,Integer> {
List<Book> findByBookNameLike(String bookName);
}
三、添加修改及查询操作
只有book id相同就是修改
@Autowired
BookRepository bookRepository;
@Test
public void test02(){
Book book=new Book();
book.setId(2);
book.setBookName("西游记s");
book.setAuthor("郑各系");
bookRepository.save(book);
for (Book book2:bookRepository.findByBookNameLike("西")){
System.out.println(book2+"?");
}
}
举个elasticsearch实操例子吧
如商品搜索
新建一个商品类型的文档
文档里有两个属性,一个是名称,一个是商品id
模糊查询名称属性,查出所有相关文档,从而得到商品id属性。
再带入mysql中查询商品数据。