>From a 10.000 feet point of view, your code looks good to me. The only for mapping to change as you described is that type has been removed between the two run.
I don't see any other explanation. What can you see in elasticsearch node logs? Before the first test, after the first test and after the second test? -- David Pilato | Technical Advocate | Elasticsearch.com @dadoonet | @elasticsearchfr Le 27 avril 2014 à 12:49:10, Ho-sang Jeon ([email protected]) a écrit: Thank you very much David Pilato. OK. Here is my GIST https://gist.github.com/jhsbeat/11342294 In GistTest.java, after I exectued "testPutMappingTemplate()" method, I can get the mapping below. {"my_type":{"properties":{"dataId":{"type":"long"},"myFieldList":{"properties":{"myFieldExact":{"type":"string","index":"not_analyzed","omit_norms":true,"index_options":"docs"}}}}}} However, after I ran "testIndexNewObject()" method, I got the mapping below. {"my_type":{"properties":{"dataId":{"type":"long"},"myFieldList":{"properties":{"myFieldExact":{"type":"string"}}}}}} Do I have to remove my whole index and recreate it? On Sunday, April 27, 2014 6:51:00 PM UTC+9, David Pilato wrote: I think you are pasting here your actual data. So it's hard to tell where you are doing something wrong. May be you could GIST a full curl/SENSE recreation? -- David ;-) Twitter : @dadoonet / @elasticsearchfr / @scrutmydocs Le 27 avr. 2014 à 11:36, Ho-sang Jeon <[email protected]> a écrit : Thanks David Pilato. However, as I mentioned, I could see the correct mappings for the correct index and type like below. curl -XGET http://{my_ip_address}:9200/my_index/my_type/_mapping/ {"my_type":{"properties":{........ "myFieldExact":{"type":"string","index":"not_analyzed","omit_norms":true,"index_options":"docs"},...... }}} After I index a new document into the index I got the changed mapping result for the exactly same GET url. curl -XGET http://{my_ip_address}:9200/my_index/my_type/_mapping/ {"my_type":{"properties":{........ "myFieldExact":{"type":"string"},...... }}} Here are some more detailed information. I'm using Elasticsearch version 0.90.0. The field "myFieldExact" is actually in an array. The real documents seem like below. myFieldList: [ { myFieldExact: "ABCD-1" }, { myFieldExact: "ABCD-2" }, { myFieldExact: "ABCD-2" } ] On Sunday, April 27, 2014 5:52:03 PM UTC+9, David Pilato wrote: Probably your first mapping is incorrect or applied to another type or index. -- David ;-) Twitter : @dadoonet / @elasticsearchfr / @scrutmydocs Le 27 avr. 2014 à 09:45, Ho-sang Jeon <[email protected]> a écrit : I'm in trouble with the overwriting action of prepareIndex method in Elasticsearch Java API. The problem is that my mapping definition has changed after new document has indexed. First of all, I defined an mapping to set "not_analyzed" index for a particular field. String json = myMethodToGetMapping(); PutMappingResponse pmrs = client.admin().indices().preparePutMapping("my_index").setType("my_type").setSource(json).setIgnoreConflicts(true).execute().actionGet(); if (pmrs == null || !pmrs.isAcknowledged()) { System.out.println("Put Mapping Failure."); } else { System.out.println("Put Mapping Success."); } In my mapping string(json), there is a field has settings like below. "myFieldExact":{ "type":"string", "index": "not_analyzed", "dynamic": false } After the code has executed, I could see the proper mapping which I want to get. curl -XGET http://{my_ip_address}:9200/my_index/my_type/_mapping/ {"my_type":{"properties":{........ "myFieldExact":{"type":"string","index":"not_analyzed","omit_norms":true,"index_options":"docs"},...... }}} HOWEVER, this mapping has been changed after I put some data using Java API prepareIndex. MyObject myObject = new MyObject(); myObject.setMyFieldExact("some-value"); String json = new org.codehaus.jackson.map.ObjectMapper().writeValueAsString(myObject); client.prepareIndex("my_index", "my_type", "my_id") .setSource(json).execute().actionGet(); The document successfully indexed into "my_index/my_type/my_id". Here is the problem I have. After the new record has been indexed, the original mapping definition has changed like below. curl -XGET http://{my_ip_address}:9200/my_index/my_type/_mapping/ {"my_type":{"properties":{........ "myFieldExact":{"type":"string"},...... }}} In short, the "index":"not_analyzed" property has been gone after the new document has indexed. Is there anyone can help me? Thank you very much in advance. -- 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 [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/5ee40a83-272b-4843-ba6f-f79b78737942%40googlegroups.com. For more options, visit https://groups.google.com/d/optout. -- 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 [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/fb95c354-b1ad-4920-940d-e678d430e9fc%40googlegroups.com. For more options, visit https://groups.google.com/d/optout. -- 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 [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/e9099a04-6b73-4eb0-b43a-dbc836067005%40googlegroups.com. For more options, visit https://groups.google.com/d/optout. -- 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 [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/etPan.535ec3a2.2d1d5ae9.16bd1%40MacBook-Air-de-David.local. For more options, visit https://groups.google.com/d/optout.
