여러 엔터티 바인딩으로 ElasticSearch 인덱스를 구성하는 방법
소개
ElasticSearch 통합(ES )을 기존 애플리케이션에 추가하면 ES 인덱스에서 복잡한 데이터베이스 구조를 복제하는 방법에 대한 질문이 자주 제기됩니다. 이 문서에서는 여러 엔터티 바인딩을 처리할 때 인덱스 구조를 구성하는 특정 과제를 다룹니다.
데이터베이스 구조
전자 상거래 애플리케이션에서 다음 데이터베이스 구조를 고려하세요.
구조 평면화
쿼리 및 용이성을 최적화하기 위해 사용하는 경우 구조를 평면화하여 데이터를 비정규화하는 것이 좋습니다. 여기에는 다른 테이블의 모든 관련 정보를 통합하는 제품 문서 작성이 포함됩니다.
{ "id": "00c8234d71c4e94f725cd432ebc04", "title": "Alpha", "price": 589.0, "flags": ["Sellout", "Top Product"] }
ES 제품 매핑
해당 ES 제품 매핑 유형은 다음과 같습니다.
PUT products { "mappings": { "product": { "properties": { "id": { "type": "string", "index": "not_analyzed" }, "title": { "type": "string" }, "price": { "type": "double", "null_value": 0.0 }, "flags": { "type": "string", "index": "not_analyzed" } } } } }
Logstash SQL 쿼리
ES 인덱스를 채우려면 Logstash JDBC 입력을 다음 쿼리와 함께 사용할 수 있습니다.
위 내용은 여러 엔터티 관계에 대한 Elasticsearch 인덱스를 구성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!