[Elasticsearch] Highlight 기능.
Elastic/Elasticsearch 2013. 8. 23. 16:11[lucene]
Highlighter.java
FastVectorHighlighter.java
[elasticsearch]
PlainHighlighter.java
FastVectorHighlighter.java
실제 term 에 highlight tag 를 적용하는 건.. highlightTerm() method 입니다.
SimpleHTMLFormatter.java
GradientFormatter.java
참고하세요.
이넘들이 highlight 하기 위해서는 기본 두 개의 정보가 필요 합니다.
CharTermAttribute.java
OffsetAttribute.java
이것들이 어떻게 동작하는지는 소스코드를 보시면 되겠습니다.
간단하게는...
1. stored 원문을 가져옵니다.
2. char term 과 offset 정보를 이용해서 원문을 재구성 합니다.
2.1 재구성 할때 highlightTerm() 에서 재구성된 term 을 만들어 줍니다.
뭐 상세한건 소스를 보시는게 건강에 좋습니다. :)