Result metadata


(Savio Teles) #1

How can I get the metadata from a query result?

In Java can be implemented like this using SQL:

Statement st = connection.createStatement();
ResultSet result = st.executeQuery(sql);
result.getMetaData();

--
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/b4d14314-13ba-4646-8bd7-541d3a9c5735%40googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


(Brian Yoder) #2

Savio,

You can get it from the SearchHit. For example:

public void loadFrom(SearchHit doc)
{
index = doc.getIndex();
type = doc.getType();
id = doc.getId();
version = doc.getVersion();

try
{
setTTL(extractTTL(doc));
}
catch Exception e)
{
ttl = null;
}
}

public static String extractTTL(SearchHit doc)
{
String ttl = null;
if (doc != null)
{
SearchHitField ttlField = doc.field(TTL_FIELD_NAME);
if (ttlField != null)
{
Value ttlValue = new Value(ttlField.value());
if (ttlValue != null)
return ttlValue.toRawString();
}
}
return ttl;
}

And you would do something similar for a GetResponse object, too (response
from a query-by-id).

Hope this helps!

Brian

--
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/d7388850-8355-408b-81de-8f91a40004fc%40googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


(Savio Teles) #3

So, Have I to extract the Java type of each object of response? There is no
way to get metadata directly?

Thanks for the answer!

Em terça-feira, 14 de janeiro de 2014 12h13min44s UTC-2, Savio Teles
escreveu:

How can I get the metadata from a query result?

In Java can be implemented like this using SQL:

Statement st = connection.createStatement();
ResultSet result = st.executeQuery(sql);
result.getMetaData();

--
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/233e3754-b1da-482f-8c98-b16a30a87b0b%40googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


(Ivan Brusic) #4

What metadata are you looking for? Just the column type? Unfortunately
there is no direct way to get the Java type of each response/field. You can
retrieve the mapping from the index [1] and determine which field uses
which type. I am assuming most using the Java API have written their own
ORM layer. Elasticsearch uses Jackson for JSON, so you can always use it to
recreate your objects.

http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/indices-get-mapping.html

Cheers,

Ivan

On Tue, Jan 14, 2014 at 8:47 AM, Savio Teles savioteles@gmail.com wrote:

So, Have I to extract the Java type of each object of response? There is
no way to get metadata directly?

Thanks for the answer!

Em terça-feira, 14 de janeiro de 2014 12h13min44s UTC-2, Savio Teles
escreveu:

How can I get the metadata from a query result?

In Java can be implemented like this using SQL:

Statement st = connection.createStatement();
ResultSet result = st.executeQuery(sql);
result.getMetaData();

--
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/233e3754-b1da-482f-8c98-b16a30a87b0b%40googlegroups.com
.

For more options, visit https://groups.google.com/groups/opt_out.

--
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/CALY%3DcQD73awz3jd%2B%3Dh243%3Dnw_45rKY%3Dpi1_%2Bu-Aq-8-RF_ooyg%40mail.gmail.com.
For more options, visit https://groups.google.com/groups/opt_out.


(Savio Teles) #5

What metadata are you looking for? Just the column type?

Yes, just the column type.

You can retrieve the mapping from the index [1]

Ok! Tks

Em terça-feira, 14 de janeiro de 2014 12h13min44s UTC-2, Savio Teles
escreveu:

How can I get the metadata from a query result?

In Java can be implemented like this using SQL:

Statement st = connection.createStatement();
ResultSet result = st.executeQuery(sql);
result.getMetaData();

--
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/89e0e3f4-c6bc-45f8-b255-7ac77f3f040d%40googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


(system) #6