Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
DAISY-Search
Search
Sunghyouk Bae
June 10, 2013
Programming
0
71
DAISY-Search
Search Server by Lucene, Hibernate-Search, Hibernate-OGM, Korean Analyzer
Sunghyouk Bae
June 10, 2013
Tweet
Share
More Decks by Sunghyouk Bae
See All by Sunghyouk Bae
Requery overview
debop
0
37
Reactive Programming with RxJava
debop
0
48
Kotlin @ Coupang Backend 2017
debop
1
570
Hibernate-OGM Overview v 1.0
debop
2
2.2k
Other Decks in Programming
See All in Programming
Figma Dev Modeで変わる!Flutterの開発体験
watanave
0
140
ローコードSaaSのUXを向上させるためのTypeScript
taro28
1
630
Pinia Colada が実現するスマートな非同期処理
naokihaba
4
230
C++でシェーダを書く
fadis
6
4.1k
ヤプリ新卒SREの オンボーディング
masaki12
0
130
Creating a Free Video Ad Network on the Edge
mizoguchicoji
0
120
Enabling DevOps and Team Topologies Through Architecture: Architecting for Fast Flow
cer
PRO
0
340
Webの技術スタックで マルチプラットフォームアプリ開発を可能にするElixirDesktopの紹介
thehaigo
2
1k
Tauriでネイティブアプリを作りたい
tsucchinoko
0
370
とにかくAWS GameDay!AWSは世界の共通言語! / Anyway, AWS GameDay! AWS is the world's lingua franca!
seike460
PRO
1
890
카카오페이는 어떻게 수천만 결제를 처리할까? 우아한 결제 분산락 노하우
kakao
PRO
0
110
Ethereum_.pdf
nekomatu
0
460
Featured
See All Featured
Designing on Purpose - Digital PM Summit 2013
jponch
115
7k
Optimizing for Happiness
mojombo
376
70k
Into the Great Unknown - MozCon
thekraken
32
1.5k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
44
2.2k
Making the Leap to Tech Lead
cromwellryan
133
8.9k
Testing 201, or: Great Expectations
jmmastey
38
7.1k
Designing for humans not robots
tammielis
250
25k
Designing for Performance
lara
604
68k
Unsuck your backbone
ammeep
668
57k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
38
1.8k
4 Signs Your Business is Dying
shpigford
180
21k
VelocityConf: Rendering Performance Case Studies
addyosmani
325
24k
Transcript
DAISY-SEARCH ࣗѐ KTH / @debop68 2013.05 13֙ 5ਘ 22ੌ ࣻਃੌ
DAISY-SEARCH 란 Lucene 기반의 검색서비스 한글형태소 분석기를 사용합니다. (n-gram 사용도
가능) 파일이 아닌 NoSql 기반의 저장소를 사용합니다. Crawler 는 미포함 Avro와Netty를 이용한 API 13֙ 5ਘ 22ੌ ࣻਃੌ
DAISY-SEARCH 구성도 MongoDB Lucene hibernate-ogm (object/grid mapping) hibernate-search DAISY-SEARCH SERVER
avro REST hibernate-orm 13֙ 5ਘ 22ੌ ࣻਃੌ
DAISY-SEARCH 특징 hibernate-ogm 채택 컨텐츠 저장소 및 인덱스 저장소로 MongoDB,
Infinispan, EhCache 사용 가능 향후 Redis, Couchbase 용 provider 개발 중 Index 정보를 엔티티별 생성 Index Sharding 제공 (비동기 방식, Indexing 속도 향상) 13֙ 5ਘ 22ੌ ࣻਃੌ
한글 형태소 분석기 https://github.com/debop/debop4j debop4j-search 모듈 이수명님의 한글 형태소 분석기
fork (thread-safe 하게 변경) 꼬꼬마 한글 형태소 분석기 사전 추가 동의어 사전 추가 (사용처에 맞게 계속 관리 필요) 13֙ 5ਘ 22ੌ ࣻਃੌ
Search API ݫࣗ٘ݺ ࢸݺ ping 서버와의 통신이 가능한지 시험합니다 search
검색을 수행합니다. (paging) searchId 검색을 수행합니다. 단 Id만 반환합니다. persist 컨텐츠를 저장합니다 (인덱싱과 원본을 저장합니다.) persistAll 다량의 컨텐츠를 저장합니다. delete 컨텐츠를 삭제합니다. deleteOlderEntities 특정시각 이전의 컨텐츠를 삭제합니다. indexOptimize 인덱스 정보를 최적화합니다 indexAll 모든 인덱스를 삭제하고 재생성합니다. clearAll 컨텐츠와 인덱스 모두를 삭제합니다. 13֙ 5ਘ 22ੌ ࣻਃੌ
Examples - persist // persist entities Entity entity = getEntity(TEST_ROW_ID);
assertThat(client.persist(entity)).isTrue(); List<Entity> entities = new ArrayList<Entity>(); for (int i = 0; i < 100; i++) { Entity row = getEntity("ROW-ID-" + i); row.setAttrs(new HashMap<CharSequence, CharSequence>()); entities.add(row); } client.persistAll(entities); 13֙ 5ਘ 22ੌ ࣻਃੌ
Examples - search // TEXTী “Ҋё” Ҋ, ݫఋؘఠ “SRਬഋ” =
“ࠛ݅” ੋ ஶబஎ Ѩ࢝ // HashMap<String, String> map = new HashMap<String, String>(); map.put("SRਬഋ", "ࠛ݅"); SearchResult result = client.search("Ҋё", map, 1, 10); 13֙ 5ਘ 22ੌ ࣻਃੌ