...
설정
주요 Nuget 의존성 라이브러리
<PackageReference Include="NEST" Version="7.5.1" /> <PackageReference Include="Microsoft.EntityFrameworkCore" Version="2.2.3" /> <PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="2.2.0" />
엘라서틱 검색엔진 API를 활용하기위해 NEST가 사용되었으며,
RDB의 데이터와 검색 인덱스의 데이터 동기화에 드는 개발 비용을 줄이기 위해
ORM이 활용되었습니다. ORM은 검색 인덱싱을 하는 과정에서만 사용되며,
사용자의 검색 요청은 엘라서틱 서치엔진 API를 직접 사용할 예정이기때문에 이 경우 ORM의 성능은 큰 이슈가 되지 못합니다.
추후 대량의 배치처리시 ORM의 성능 문제가 된다고 하면, 배치성능에 최적화된 ORM 확장 모듈을 사용할수도 있습니다.
App 설정
엘라서틱 Config
StartUp 설정
검색 기능 추가
검색 Entity정의
검색 Repository for RDB
DI를 통한 엘라서틱 서치 클라이언트 사용
참고링크:
- https://miroslavpopovic.com/posts/2018/07/elasticsearch-with-aspnet-core-and-docker
- https://www.elastic.co/guide/en/elasticsearch/client/net-api/current/writing-analyzers.html
- https://www.elastic.co/guide/en/elasticsearch/client/net-api/current/testing-analyzers.html