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
59
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
35
Reactive Programming with RxJava
debop
0
48
Kotlin @ Coupang Backend 2017
debop
1
550
Hibernate-OGM Overview v 1.0
debop
2
2.1k
Other Decks in Programming
See All in Programming
Hanami and htmx
bkuhlmann
0
190
両面どころかインフラもTSでできるよ ~ 全方位TypeScriptによるプロダクト開発 ~
myfinder
9
3.2k
puregoの活用例
aethiopicuschan
0
220
Semantic search with Django and pgvector
pauloxnet
0
240
PHPの次期バージョンはこの時期どうなっているのか - Internalsの開発体制について - PHPカンファレンス小田原
youkidearitai
PRO
1
180
1BRC--Nerd Sniping the Java Community
gunnarmorling
0
300
Designing for tomorrow's programming workflows
honnibal
PRO
2
110
CQRS/ES avec Symfony, c’est (trop) bien !
jeremyfreeagent
1
630
StoreKit2によるiOSのアプリ内課金のリニューアル
kangnux
0
100
App Router への移行は「改善」となり得るのか?/ Can migration to App Router be an improvement
takefumiyoshii
8
2.1k
Ruby Pattern Matching
bkuhlmann
0
920
HUIT新歓2024「競技プログラミング、やってみませんか?」
slephy2784
1
250
Featured
See All Featured
In The Pink: A Labor of Love
frogandcode
138
21k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
124
32k
What's in a price? How to price your products and services
michaelherold
237
11k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
352
28k
Into the Great Unknown - MozCon
thekraken
10
980
How GitHub Uses GitHub to Build GitHub
holman
468
290k
Keith and Marios Guide to Fast Websites
keithpitt
408
22k
Stop Working from a Prison Cell
hatefulcrawdad
266
19k
Debugging Ruby Performance
tmm1
70
11k
Code Reviewing Like a Champion
maltzj
513
39k
Writing Fast Ruby
sferik
620
60k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
15
1.4k
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ੌ ࣻਃੌ