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
72
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
php-conference-japan-2024
tasuku43
0
350
EC2からECSへ 念願のコンテナ移行と巨大レガシーPHPアプリケーションの再構築
sumiyae
1
380
Monixと常駐プログラムの勘どころ / Scalaわいわい勉強会 #4
stoneream
0
280
LLM Supervised Fine-tuningの理論と実践
datanalyticslabo
7
1.4k
htmxって知っていますか?次世代のHTML
hiro_ghap1
0
350
快速入門可觀測性
blueswen
0
400
今年一番支援させていただいたのは認証系サービスでした
satoshi256kbyte
1
260
ゆるやかにgolangci-lintのルールを強くする / Kyoto.go #56
utgwkk
2
430
SymfonyCon Vienna 2025: Twig, still relevant in 2025?
fabpot
3
1.2k
開発者とQAの越境で自動テストが増える開発プロセスを実現する
92thunder
1
200
Exploring: Partial and Independent Composables
blackbracken
0
100
【re:Growth 2024】 Aurora DSQL をちゃんと話します!
maroon1st
0
790
Featured
See All Featured
Code Review Best Practice
trishagee
65
17k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
3
170
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
Reflections from 52 weeks, 52 projects
jeffersonlam
347
20k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
45
2.2k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
29
2k
Designing for Performance
lara
604
68k
For a Future-Friendly Web
brad_frost
175
9.4k
Visualization
eitanlees
146
15k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
38
1.9k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
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ੌ ࣻਃੌ