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
デザインパターンで理解するLLMエージェントの作り方 / How to develop an LLM agent using agentic design patterns
rkaga
3
230
RubyLSPのマルチバイト文字対応
notfounds
0
120
Arm移行タイムアタック
qnighy
0
340
PHP でアセンブリ言語のように書く技術
memory1994
PRO
1
170
CSC509 Lecture 12
javiergs
PRO
0
160
ECS Service Connectのこれまでのアップデートと今後のRoadmapを見てみる
tkikuc
2
260
Amazon Qを使ってIaCを触ろう!
maruto
0
420
リアーキテクチャxDDD 1年間の取り組みと進化
hsawaji
1
220
よくできたテンプレート言語として TypeScript + JSX を利用する試み / Using TypeScript + JSX outside of Web Frontend #TSKaigiKansai
izumin5210
6
1.8k
C++でシェーダを書く
fadis
6
4.1k
EMになってからチームの成果を最大化するために取り組んだこと/ Maximize team performance as EM
nashiusagi
0
100
Jakarta EE meets AI
ivargrimstad
0
640
Featured
See All Featured
GraphQLの誤解/rethinking-graphql
sonatard
67
10k
Optimizing for Happiness
mojombo
376
70k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
25
1.8k
How STYLIGHT went responsive
nonsquared
95
5.2k
The Art of Programming - Codeland 2020
erikaheidi
52
13k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
6
430
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
109
49k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
250
21k
YesSQL, Process and Tooling at Scale
rocio
169
14k
Docker and Python
trallard
40
3.1k
Fontdeck: Realign not Redesign
paulrobertlloyd
82
5.2k
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ੌ ࣻਃੌ