[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 을 만들어 줍니다.


뭐 상세한건 소스를 보시는게 건강에 좋습니다. :)

: