Config'd mapping does not seem to take effect - part 2


(searchgirl) #1

Since I can't edit nor comment on my last post, I am posting
additional information here. Please read the last post first.....

I modified my code to a put mapping before creating the index:

client.admin().indices().putMapping(Requests.putMappingRequest("en").source(indexConfigStr).type("product"));
client.admin().indices().prepareCreate(en).execute().actionGet();

 "indexConfigStr" is "product.json" file content (see last post).

I query the mapping "http://localhost:9200/en/product/_mapping", I
now see the mapping:

{
product: {
properties: {

descl: {
type: "string"
},
descs: {
type: "string",
boost: 1.3
},
pgrp: {
type: "string",
index: "not_analyzed",
store: "yes"
},
pid: {
type: "string",
index: "not_analyzed",
store: "yes"
},
rid: {
type: "string",
index: "not_analyzed",
store: "yes"
},
}
}

It seems "store":"no" is the default. However, when getting a
document, I still get the fields that are not suppose to be stored as
text:

{
_index: "en",
_type: "product",
_id: "58d2ccf1-abc6-4a61-9eca-7c4d342b48c8",
_version: 8,
exists: true,
_source: {
pid: "58d2ccf1-abc6-4a61-9eca-7c4d342b48c8",
rid: "44fe535f-4531-48bd-82d1-d96b6ef2bbe7",
descl: "The Way Home",
descs: "The Way Home",
}
}

So what does "store":"no" suppose to mean? Also, how can I verify
boost factor at a field level is working? Thanks for your help in
advance.


(Ivan Brusic) #2

Although the fields are not being stored (which is the default), the
original source document is. What you are viewing the the source and
not the stored fields. You can change this behavior by disabling (or
compressing) source:

http://www.elasticsearch.org/guide/reference/mapping/source-field.html

--
Ivan

On Tue, May 15, 2012 at 10:34 AM, Helen Poon helenchenpoon@gmail.com wrote:

Since I can't edit nor comment on my last post, I am posting
additional information here. Please read the last post first.....

I modified my code to a put mapping before creating the index:

client.admin().indices().putMapping(Requests.putMappingRequest("en").source(indexConfigStr).type("product"));
client.admin().indices().prepareCreate(en).execute().actionGet();

"indexConfigStr" is "product.json" file content (see last post).

I query the mapping "http://localhost:9200/en/product/_mapping", I
now see the mapping:

{
product: {
properties: {

descl: {
type: "string"
},
descs: {
type: "string",
boost: 1.3
},
pgrp: {
type: "string",
index: "not_analyzed",
store: "yes"
},
pid: {
type: "string",
index: "not_analyzed",
store: "yes"
},
rid: {
type: "string",
index: "not_analyzed",
store: "yes"
},
}
}

It seems "store":"no" is the default. However, when getting a
document, I still get the fields that are not suppose to be stored as
text:

{
_index: "en",
_type: "product",
_id: "58d2ccf1-abc6-4a61-9eca-7c4d342b48c8",
_version: 8,
exists: true,
_source: {
pid: "58d2ccf1-abc6-4a61-9eca-7c4d342b48c8",
rid: "44fe535f-4531-48bd-82d1-d96b6ef2bbe7",
descl: "The Way Home",
descs: "The Way Home",
}
}

So what does "store":"no" suppose to mean? Also, how can I verify
boost factor at a field level is working? Thanks for your help in
advance.


(searchgirl) #3

"store:no" fields are still returned with a "Get".

I found the following question. It looks like a fix to not show these
fields in _source from translog is to be included in 0.19.4. I am
using 0.19.3.

http://groups.google.com/group/elasticsearch/browse_frm/thread/10e54cdec7dd6bca/8b4dc87d6b05d538?lnk=gst&q=_source#8b4dc87d6b05d538

On May 15, 7:20 pm, Ivan Brusic i...@brusic.com wrote:

Although the fields are not being stored (which is the default), the
original source document is. What you are viewing the the source and
not the stored fields. You can change this behavior by disabling (or
compressing) source:

http://www.elasticsearch.org/guide/reference/mapping/source-field.html

--
Ivan

On Tue, May 15, 2012 at 10:34 AM, Helen Poon helenchenp...@gmail.com wrote:

Since I can't edit nor comment on my last post, I am posting
additional information here. Please read the last post first.....

I modified my code to a put mapping before creating the index:

client.admin().indices().putMapping(Requests.putMappingRequest("en").source (indexConfigStr).type("product"));
client.admin().indices().prepareCreate(en).execute().actionGet();

"indexConfigStr" is "product.json" file content (see last post).

I query the mapping "http://localhost:9200/en/product/_mapping", I
now see the mapping:

{
product: {
properties: {

descl: {
type: "string"
},
descs: {
type: "string",
boost: 1.3
},
pgrp: {
type: "string",
index: "not_analyzed",
store: "yes"
},
pid: {
type: "string",
index: "not_analyzed",
store: "yes"
},
rid: {
type: "string",
index: "not_analyzed",
store: "yes"
},
}
}

It seems "store":"no" is the default. However, when getting a
document, I still get the fields that are not suppose to be stored as
text:

{
_index: "en",
_type: "product",
_id: "58d2ccf1-abc6-4a61-9eca-7c4d342b48c8",
_version: 8,
exists: true,
_source: {
pid: "58d2ccf1-abc6-4a61-9eca-7c4d342b48c8",
rid: "44fe535f-4531-48bd-82d1-d96b6ef2bbe7",
descl: "The Way Home",
descs: "The Way Home",
}
}

So what does "store":"no" suppose to mean? Also, how can I verify
boost factor at a field level is working? Thanks for your help in
advance.


(system) #4