# Retrieve source document of a Hit with Java API

**URL:** <https://discuss.elastic.co/t/retrieve-source-document-of-a-hit-with-java-api/8487>\
**Category:** Elasticsearch\
**Created:** [July 23, 2012, 6:19am UTC](https://discuss.elastic.co/t/retrieve-source-document-of-a-hit-with-java-api/8487 "2012-07-23T06:19:22Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Dan\_GTI](https://avatars.discourse-cdn.com/v4/letter/d/8edcca/32.png) [@Dan\_GTI](https://discuss.elastic.co/u/Dan_GTI)\
**Post date:** [July 23, 2012, 6:19am UTC](https://discuss.elastic.co/t/retrieve-source-document-of-a-hit-with-java-api/8487/1 "2012-07-23T06:19:22Z")

</div>

Hi,  
I am just trying to do a simple search and retrieve the source document but  
it looks like its having troubles finding a lucene class, is there anything  
I am missing or doing wrong or is this a bug?

Exception in thread "main" java.lang.NoClassDefFoundError:  
org/apache/lucene/document/FieldSelector  
at  
org.elasticsearch.search.internal.InternalSearchHit.sourceAsMap(InternalSearchHit.java:239)  
at  
org.elasticsearch.search.internal.InternalSearchHit.getSource(InternalSearchHit.java:208)  
at test.Main.main(Main.java:42)  
Caused by: java.lang.ClassNotFoundException:  
org.apache.lucene.document.FieldSelector

```
    Client client = new TransportClient()
            .addTransportAddress(new 

```

InetSocketTransportAddress("host\_name", 9300));

```
    TextQueryBuilder tqb1 = new TextQueryBuilder("pages.pageText", 

```

"text\_to\_find")  
.type(TextQueryBuilder.Type.PHRASE);

```
    SearchResponse response = client.prepareSearch("index_name")
            .setSearchType(SearchType.QUERY_AND_FETCH)
            .setQuery(tqb1)
            .execute()
            .actionGet();
    for (SearchHit hit : response.getHits()){
        
        Map<String, Object> source = hit.getSource();
    }
```

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [July 23, 2012, 6:38am UTC](https://discuss.elastic.co/t/retrieve-source-document-of-a-hit-with-java-api/8487/2 "2012-07-23T06:38:55Z")

</div>

Bad classpath.  
Are you mixing Elasticsearch with Lucene dependencies ?

Check your project dependencies.

HTH  
David 😉  
Twitter : @dadoonet / @elasticsearchfr

Le 23 juil. 2012 à 08:19, Dan\_GTI [danielszwed84@gmail.com](mailto:danielszwed84@gmail.com) a écrit :

> Hi,  
> I am just trying to do a simple search and retrieve the source document but it looks like its having troubles finding a lucene class, is there anything I am missing or doing wrong or is this a bug?
> 
> Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/lucene/document/FieldSelector  
> at org.elasticsearch.search.internal.InternalSearchHit.sourceAsMap(InternalSearchHit.java:239)  
> at org.elasticsearch.search.internal.InternalSearchHit.getSource(InternalSearchHit.java:208)  
> at test.Main.main(Main.java:42)  
> Caused by: java.lang.ClassNotFoundException: org.apache.lucene.document.FieldSelector
> 
> ```
> Client client = new TransportClient()
> .addTransportAddress(new InetSocketTransportAddress("host_name", 9300));
> 
> TextQueryBuilder tqb1 = new TextQueryBuilder("pages.pageText", "text_to_find")
> .type(TextQueryBuilder.Type.PHRASE);
> 
> SearchResponse response = client.prepareSearch("index_name")
> .setSearchType(SearchType.QUERY_AND_FETCH)
> .setQuery(tqb1)
> .execute()
> .actionGet();
> for (SearchHit hit : response.getHits()){
>         
> Map<String, Object> source = hit.getSource();
> }
> 
> ```

---

<div class="post-metadata">

**Author:** ![Dan\_GTI](https://avatars.discourse-cdn.com/v4/letter/d/8edcca/32.png) [@Dan\_GTI](https://discuss.elastic.co/u/Dan_GTI)\
**Post date:** [July 23, 2012, 6:51am UTC](https://discuss.elastic.co/t/retrieve-source-document-of-a-hit-with-java-api/8487/3 "2012-07-23T06:51:00Z")

</div>

OK, was originally elasticsearch-0.19.8.jar went back to  
using elasticsearch-0.19.0.jar and it started working fine...

On Monday, July 23, 2012 4:19:22 PM UTC+10, Dan-GTI wrote:

> Hi,  
> I am just trying to do a simple search and retrieve the source document  
> but it looks like its having troubles finding a lucene class, is there  
> anything I am missing or doing wrong or is this a bug?
> 
> Exception in thread "main" java.lang.NoClassDefFoundError:  
> org/apache/lucene/document/FieldSelector  
> at  
> org.elasticsearch.search.internal.InternalSearchHit.sourceAsMap(InternalSearchHit.java:239)  
> at  
> org.elasticsearch.search.internal.InternalSearchHit.getSource(InternalSearchHit.java:208)  
> at test.Main.main(Main.java:42)  
> Caused by: java.lang.ClassNotFoundException:  
> org.apache.lucene.document.FieldSelector
> 
> ```
> Client client = new TransportClient()
> .addTransportAddress(new 
> 
> ```
> 
> InetSocketTransportAddress("host\_name", 9300));
> 
> ```
> TextQueryBuilder tqb1 = new TextQueryBuilder("pages.pageText", 
> 
> ```
> 
> "text\_to\_find")  
> .type(TextQueryBuilder.Type.PHRASE);
> 
> ```
> SearchResponse response = client.prepareSearch("index_name")
> .setSearchType(SearchType.QUERY_AND_FETCH)
> .setQuery(tqb1)
> .execute()
> .actionGet();
> for (SearchHit hit : response.getHits()){
>         
> Map<String, Object> source = hit.getSource();
> }
> 
> ```

---

<div class="post-metadata">

**Author:** ![Ivan](https://avatars.discourse-cdn.com/v4/letter/i/df788c/32.png) [@Ivan](https://discuss.elastic.co/u/Ivan)\
**Post date:** [July 24, 2012, 2:37pm UTC](https://discuss.elastic.co/t/retrieve-source-document-of-a-hit-with-java-api/8487/4 "2012-07-24T14:37:27Z")

</div>

ES 0.19.8 uses Lucene 3.6, while ES 0.19.0 uses Lucene 3.5, which  
means you probably had Lucene 3.5 in your classpath while using  
0.19.8.

On Sun, Jul 22, 2012 at 11:51 PM, Dan-GTI [danielszwed84@gmail.com](mailto:danielszwed84@gmail.com) wrote:

> OK, was originally elasticsearch-0.19.8.jar went back to using  
> elasticsearch-0.19.0.jar and it started working fine...
> 
> On Monday, July 23, 2012 4:19:22 PM UTC+10, Dan-GTI wrote:
> 
> > Hi,  
> > I am just trying to do a simple search and retrieve the source document  
> > but it looks like its having troubles finding a lucene class, is there  
> > anything I am missing or doing wrong or is this a bug?
> > 
> > Exception in thread "main" java.lang.NoClassDefFoundError:  
> > org/apache/lucene/document/FieldSelector  
> > at  
> > org.elasticsearch.search.internal.InternalSearchHit.sourceAsMap(InternalSearchHit.java:239)  
> > at  
> > org.elasticsearch.search.internal.InternalSearchHit.getSource(InternalSearchHit.java:208)  
> > at test.Main.main(Main.java:42)  
> > Caused by: java.lang.ClassNotFoundException:  
> > org.apache.lucene.document.FieldSelector
> > 
> > ```
> > Client client = new TransportClient()
> > .addTransportAddress(new
> > 
> > ```
> > 
> > InetSocketTransportAddress("host\_name", 9300));
> > 
> > ```
> > TextQueryBuilder tqb1 = new TextQueryBuilder("pages.pageText",
> > 
> > ```
> > 
> > "text\_to\_find")  
> > .type(TextQueryBuilder.Type.PHRASE);
> > 
> > ```
> > SearchResponse response = client.prepareSearch("index_name")
> > .setSearchType(SearchType.QUERY_AND_FETCH)
> > .setQuery(tqb1)
> > .execute()
> > .actionGet();
> > for (SearchHit hit : response.getHits()){
> > 
> > Map<String, Object> source = hit.getSource();
> > }
> > 
> > ```

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [July 6, 2017, 3:19am UTC](https://discuss.elastic.co/t/retrieve-source-document-of-a-hit-with-java-api/8487/5 "2017-07-06T03:19:17Z")

</div>


