엘라스틱서치는 근실시간(Near Real Time) 검색을 제공한다. 색인결과는 물리적인 디스크에 생성함에도 불구하고 실시간에 가까운 검색기능을 제공한다.
하나의 루씬 인덱스는 내부적으로 다수의 세그먼트로 구성되어있다.
읽기 성능이 중요한 검색엔진에서는 하나의 세그먼트로 검색을 처리하는 것보다 여러 세그먼트로 나누어서 처리를 하는 것이 유리하다.

루씬은 검색 요청을 받으면 다수의 작은 세그먼트 조각들에 검색을 수행한 뒤 이를 하나의 결과로 합쳐서 응답한다. 이러한 검색방식은 세그먼트 단위 검색(Per Segment Search) 라고 한다.
세그먼트는 역색인 구조를 지닌 파일을 의미한다.
루씬은 세그먼트들을 관리하기 위한 용도로 커밋 포인트(Commit Point)라는 자료구조를 제공한다.
커밋 포인트는 여러 세그먼트의 목록 정보를 가지고 있으며 검색 요청 시 이를 활용한다. 루씬의 IndexSearcher는 검색 요청을 받으면 커밋 포인트를 이용하여 가장 오래된 세그먼트부터 차례대로 검색하여 각 결과를 하나로 합쳐서 제공한다.

색인 요청이 들어오면 IndexWriter에 의해 색인 작업이 이루어지고 세그먼트가 생성되고 커밋 포인트에 기록한다. 색인 작업이 이루어질 때 마다 이런식으로 세그먼트의 개수는 점점 증가한다.
검색 요청이 들어오면 IndexSearcher가 커밋 포인트를 이용해 모든 세그먼트를 읽어들여 검색을 수행한 뒤 결과를 제공한다.
내부에 존재하는 모든 세그먼트들을 대상으로 검색하기 때문에 모든 데이터를 빠짐없이 읽는데 문제가 없다.
세그먼트가 점점 늘어나서 너무 많아지면 읽기 성능이 저하될 수 있기 때문에, 백그라운드에서 주기적으로 세그먼트 파일을 Merge 하는 작업을 수행한다.
이를 통해 모든 세그먼트 들은 물리적으로 하나의 파일로 병합한다. 이러한 과정은 지속적으로 수행된다.