elasticSearch 사용

10320 단어
ElasticSearch 다운로드 설치 및 구성에 대한 자세한 내용은 여기에서 설명하지 않으며 사용 방법에 대해서는 구체적으로 설명합니다.
1. 색인 만들기 및 삭제 SpringBoot-data-elasticsearch는 대상을 대상으로 하는 방식으로 elasticsearch 업무를 조작할 수 있습니다. 하나의 상품 대상을 만들고 이런 속성이 있습니다. id, title,category,brand,price, 이미지 주소는 SpringDataElasticSearch에서 조작 대상만 있으면 elasticsearch의 데이터인 SpringData를 조작하여 주석을 통해 필드의 맵 속성을 설명할 수 있습니다.다음 세 가지 주석이 있습니다: @Document는 클래스에 사용되고, 실체 클래스는 문서의 대상이며, 보통 두 가지 속성이 있습니다: indexName: 인덱스 라이브러리 이름 type: 인덱스 라이브러리에 대응하는 유형shards: 슬라이스 수량, 기본 5 replicas: 복사본 수량, 기본 1 @Id는 구성원 변수에 사용되며, 한 필드는 id 메인 키로 표시됩니다 @Field는 구성원 변수로 사용되고, 문서로 표시된 필드는필드 매핑 속성을 지정합니다: type: 필드 유형, 매거진: FieldType, text, long, short,date, integer,object 등 text: 데이터를 저장할 때 자동으로 단어를 나누고 인덱스keyword를 생성합니다: 데이터를 저장할 때 단어를 나누지 않고 인덱스Numerical을 만들 수 있습니다: 수치 유형, 두 가지 기본 데이터 유형으로 나눌 수 있습니다: long, interger, short,byte,double,float,halffloat 부동점수의 고정밀도 유형:scaledfloat는 10이나 100과 같은 정밀도 인자를 지정해야 한다.elasticsearch는 실제 값을 이 인자에 곱해서 저장하고 꺼낼 때 복원합니다.Date: 날짜 형식인 elasticsearch는 날짜를 문자열로 포맷해서 저장할 수 있지만 밀리초 값으로 long으로 저장해서 공간을 절약하는 것을 권장합니다.index: 인덱스 여부, 부울 유형, 기본값true store: 저장 여부, 부울 유형, 기본값false analyzer: 분사기 이름, 여기ikmax_word 즉ik분사기 사용
사용 예는 다음과 같습니다.
@Document(indexName = "item",type = "docs", shards = 5, replicas = 1)
public class Item {
     

    /**
     * @Id springframework org.springframework.data.annotation.Id
     */
    @Id
    private Long id;

    @Field(type = FieldType.Text, analyzer = "ik_max_word")
    private String title; // 

    @Field(type = FieldType.Keyword)
    private String category;//  

    @Field(type = FieldType.Keyword)
    private String brand; //  

    @Field(type = FieldType.Double)
    private Double price; //  

    @Field(index = false, type = FieldType.Keyword)
    private String images; //  
}
2. 유니버설 도구 클래스 제3자의api는 유니버설 도구 클래스를 제공하여 색인을 만들고 삭제하는 등 일련의 작업을 할 수 있습니다. ElasticsearchTemplate esTemplate.createIndex(); esTemplate.클래스의 이름과 속성에 따라 자동으로 생성되는 방법을 추천합니다
@RunWith(SpringRunner.class)
@SpringBootTest(classes = EsDemoApplication.class)
public class EsDemoApplicationTests {
     

    @Autowired
    private ElasticsearchTemplate elasticsearchTemplate;

    @Test
    public void testCreateIndex() {
     
        elasticsearchTemplate.createIndex(Item.class);
    }
}
동시에 4.2.1을 제공했다.Repository 인터페이스인 Spring Data는 메소드 이름 또는 클래스 정보를 기반으로 CRUD 작업을 자동화할 수 있습니다.인터페이스를 정의하고 Repository에서 제공하는 인터페이스를 계승하면 다양한 기본적인 CRUD 기능을 갖출 수 있다.
public interface ItemRepository extends ElasticsearchRepository<Item,Long>{
     
}
예는 다음과 같습니다. 새로운 기능
@Autowired
private ItemRepository itemRepository;

@Test
public void testSave(){
     
    Item item = new Item(1L, " 9", "  ",
            " ", 2999.00, "http://image.baidu.com/13123.jpg");
    itemRepository.save(item);
}
2.조회,//모든 조회
@Test
public void query(){
     
    Iterable<Item> list = this.itemRepository.findAll(Sort.by("price").ascending());
    for (Item item : items) {
     
        System.out.println(item);
    }
}

좋은 웹페이지 즐겨찾기