I tried to follow a simple example on indexing a pdf document, I am using
java API. Any clue why I get this exception? By the way the plugin is
installed,
I verified by starting ES instance
[plugins                  ]  loaded [mapper-attachments, cloud-aws], sites
[bigdesk, hello-elasticsearch, head]
//Exception when running java
Exception in thread "main"
org.elasticsearch.index.mapper.MapperParsingException: mapping [attachment]
at org.elasticsearch.cluster.metadata.MetaDataCreateIndexService$2.execute(
MetaDataCreateIndexService.java:314)
at org.elasticsearch.cluster.service.InternalClusterService$UpdateTask.run(
InternalClusterService.java:300)
at
org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor$TieBreakingPrioritizedRunnable.run(
PrioritizedEsThreadPoolExecutor.java:135)
at java.util.concurrent.ThreadPoolExecutor.runWorker(
ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(
ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
Caused by: org.elasticsearch.index.mapper.MapperParsingException: No
handler for type [attachment] declared on field [file]
at
org.elasticsearch.index.mapper.object.ObjectMapper$TypeParser.parseProperties(
ObjectMapper.java:260)
at org.elasticsearch.index.mapper.object.ObjectMapper$TypeParser.parse(
ObjectMapper.java:218)
at org.elasticsearch.index.mapper.DocumentMapperParser.parse(
DocumentMapperParser.java:201)
at org.elasticsearch.index.mapper.DocumentMapperParser.parseCompressed(
DocumentMapperParser.java:183)
at org.elasticsearch.index.mapper.MapperService.parse(MapperService.java:322
)
at org.elasticsearch.index.mapper.MapperService.merge(MapperService.java:200
)
at org.elasticsearch.cluster.metadata.MetaDataCreateIndexService$2.execute(
MetaDataCreateIndexService.java:311)
... 5 more
Here is my code:
public class PDFDemo1 {
   private static Node node;
      static Client client;
    public static void main(String[] args) throws Exception {
             node = nodeBuilder().local(true).node();
              client = node.client();
              mapperAttachmentTest();
   }
     public static void mapperAttachmentTest() throws Exception {
                String idxName = "test";
                String idxType = "attachment";
                XContentBuilder map = jsonBuilder().startObject()
                       .startObject(idxType)
                         .startObject("properties")
                           .startObject("file")
                             .field("type", "attachment")
                             .startObject("fields")
                               .startObject("title")
                                 .field("store", "yes")
                               .endObject()
                               .startObject("file")
                                 .field("term_vector",
"with_positions_offsets")
                                 .field("store","yes")
                               .endObject()
                             .endObject()
                           .endObject()
                         .endObject()
                    .endObject();
               try {
                  client.admin().indices().prepareDelete(idxName).
execute().actionGet();
               } catch (Exception ex) {}
               CreateIndexResponse resp = client.admin().indices().
prepareCreate(idxName).setSettings(
                       ImmutableSettings.settingsBuilder()
                       .put("number_of_shards", 1)
                       .put("index.numberOfReplicas", 1))
                       .addMapping("attachment", map).execute().
actionGet();
               String pdfPath = ClassLoader.getSystemResource(
"fn6742.pdf").getPath();
               String data64 = org.elasticsearch.common.Base64.
encodeFromFile(pdfPath);
               XContentBuilder source = jsonBuilder().startObject()
                       .field("file", data64).endObject();
               IndexResponse idxResp = client.prepareIndex().setIndex(
idxName).setType(idxType).setId("80")
                       .setSource(source).setRefresh(true).execute().
actionGet();
               String queryString = "amplifier";
               QueryBuilder query = QueryBuilders.queryString(
queryString);
               SearchRequestBuilder searchBuilder = client.prepareSearch
().setQuery(query)
.addField("title")
                      .addHighlightedField("file");
               SearchResponse search = searchBuilder.execute().actionGet
();
              long numofHits =  search.getHits().totalHits();
              System.out.print(numofHits);
            //   assertThat(search.getHits().hits().length, equals(1));
             // 
assertThat(search.getHits().getAt(0).highlightFields().get("file"),
notNullValue());
             // 
assertThat(search.hits().getAt(0).highlightFields().get("file").toString(),
containsString("Amplifier"));
               client.close();
              }
}
--
You received this message because you are subscribed to the Google Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elasticsearch+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/1c438d30-cb84-445e-9790-66586ca14758%40googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.