Embedded ElasticSearch On Java

classic Classic list List threaded Threaded
19 messages Options
Reply | Threaded
Open this post in threaded view
|

Embedded ElasticSearch On Java

samCougars
All

I have a webapp (JAVA) with a list of items on the page. All these
items are generated on html with session variables. I want to use
ElasticSearch on the back end to do a search for items with different
search criteria. Is there a sample I can use it as a resource?

Thanks
Reply | Threaded
Open this post in threaded view
|

Re: Embedded ElasticSearch On Java

kimchy
Administrator
http://www.elasticsearch.org/guide/reference/java-api/client.html

On Thu, Dec 1, 2011 at 1:55 AM, Sam <[hidden email]> wrote:
All

I have a webapp (JAVA) with a list of items on the page. All these
items are generated on html with session variables. I want to use
ElasticSearch on the back end to do a search for items with different
search criteria. Is there a sample I can use it as a resource?

Thanks

Reply | Threaded
Open this post in threaded view
|

Re: Embedded ElasticSearch On Java

samCougars
Do you need to have a cluster setup to use elasticSearch? I'm thinking to feed on elasticSearch with JSON.
I'm having an issue to create a node at the very beginning.
Node node = NodeBuilder.nodeBuilder().node();
And it throws an error as follows:
java.lang.NoSuchMethodError: org.apache.log4j.Logger.isTraceEnabled()Z
        at org.elasticsearch.common.logging.log4j.Log4jESLogger.isTraceEnabled(Log4jESLogger.java:57)
        at org.elasticsearch.common.logging.support.AbstractESLogger.trace(AbstractESLogger.java:48)
        at org.elasticsearch.monitor.MonitorModule.configure(MonitorModule.java:86)
        at org.elasticsearch.common.inject.AbstractModule.configure(AbstractModule.java:59)
        at org.elasticsearch.common.inject.spi.Elements$RecordingBinder.install(Elements.java:210)
        at org.elasticsearch.common.inject.spi.Elements.getElements(Elements.java:91)
        at org.elasticsearch.common.inject.InjectorShell$Builder.build(InjectorShell.java:142)
        at org.elasticsearch.common.inject.InjectorBuilder.build(InjectorBuilder.java:103)
        at org.elasticsearch.common.inject.Guice.createInjector(Guice.java:93)
        at org.elasticsearch.common.inject.Guice.createInjector(Guice.java:70)
        at org.elasticsearch.common.inject.ModulesBuilder.createInjector(ModulesBuilder.java:58)
        at org.elasticsearch.node.internal.InternalNode.<init>(InternalNode.java:148)
        at org.elasticsearch.node.NodeBuilder.build(NodeBuilder.java:159)
        at org.elasticsearch.node.NodeBuilder.node(NodeBuilder.java:166)

Any suggestions?
Reply | Threaded
Open this post in threaded view
|

Re: Embedded ElasticSearch On Java

Karussell
If you want to use ES on the backend you should start an ES via the
normal installation procedure and connect to it from the webapp via
the transport client.

If you want to start ES inside the webapp you can have a look into the
wares plugin.

Peter.


On 1 Dez., 19:12, samCougars <[hidden email]> wrote:

> Do you need to have a cluster setup to use elasticSearch? I'm thinking to
> feed on elasticSearch with JSON.
> I'm having an issue to create a node at the very beginning.
> Node node = NodeBuilder.nodeBuilder().node();
> And it throws an error as follows:
> java.lang.NoSuchMethodError: org.apache.log4j.Logger.isTraceEnabled()Z
>         at
> org.elasticsearch.common.logging.log4j.Log4jESLogger.isTraceEnabled(Log4jES Logger.java:57)
>         at
> org.elasticsearch.common.logging.support.AbstractESLogger.trace(AbstractESL ogger.java:48)
>         at
> org.elasticsearch.monitor.MonitorModule.configure(MonitorModule.java:86)
>         at
> org.elasticsearch.common.inject.AbstractModule.configure(AbstractModule.jav a:59)
>         at
> org.elasticsearch.common.inject.spi.Elements$RecordingBinder.install(Elemen ts.java:210)
>         at
> org.elasticsearch.common.inject.spi.Elements.getElements(Elements.java:91)
>         at
> org.elasticsearch.common.inject.InjectorShell$Builder.build(InjectorShell.j ava:142)
>         at
> org.elasticsearch.common.inject.InjectorBuilder.build(InjectorBuilder.java: 103)
>         at
> org.elasticsearch.common.inject.Guice.createInjector(Guice.java:93)
>         at
> org.elasticsearch.common.inject.Guice.createInjector(Guice.java:70)
>         at
> org.elasticsearch.common.inject.ModulesBuilder.createInjector(ModulesBuilde r.java:58)
>         at
> org.elasticsearch.node.internal.InternalNode.<init>(InternalNode.java:148)
>         at org.elasticsearch.node.NodeBuilder.build(NodeBuilder.java:159)
>         at org.elasticsearch.node.NodeBuilder.node(NodeBuilder.java:166)
>
> Any suggestions?
>
> --
> View this message in context:http://elasticsearch-users.115913.n3.nabble.com/Embedded-ElasticSearc...
> Sent from the ElasticSearch Users mailing list archive at Nabble.com.
Reply | Threaded
Open this post in threaded view
|

Re: Embedded ElasticSearch On Java

samCougars
I was playing around w/ other references and finally I got the concept working. Here is a sample of my java code:
      String jsonString1 = "{" +
        "\"room\":\"livingroom\","+
        "\"color\":\"red\" "+
        "}";
      String jsonString2 = "{" +
        "\"room\":\"familyroom\","+
        "\"color\":\"white\" "+
        "}";
      String jsonString3 = "{" +
        "\"room\":\"kitchen\","+
        "\"color\":\"blue\" "+
        "}";

      String jsonString4 = "{" +
        "\"room\":\"bathroom\","+
        "\"color\":\"white\" "+
        "}";

      String jsonString5 = "{" +
        "\"room\":\"garage\","+
        "\"color\":\"blue\" "+
        "}";

      Node node = null;
      node = NodeBuilder.nodeBuilder().node();
   
      Client client = node.client();
      client.prepareIndex("house", "room", String.valueOf("1")).setSource(jsonString1).execute().actionGet();
      client.prepareIndex("house", "room", String.valueOf("2")).setSource(jsonString2).execute().actionGet();
      client.prepareIndex("house", "room", String.valueOf("3")).setSource(jsonString3).execute().actionGet();
      client.prepareIndex("house", "room", String.valueOf("4")).setSource(jsonString4).execute().actionGet();
      client.prepareIndex("house", "room", String.valueOf("5")).setSource(jsonString5).execute().actionGet();

      QueryBuilder queryBuilder = QueryBuilders.termQuery("color", "white");
      SearchRequestBuilder searchRequestBuilder = client.prepareSearch("house");
      searchRequestBuilder.setTypes("room");
      searchRequestBuilder.setSearchType(SearchType.DEFAULT);
      searchRequestBuilder.setQuery(queryBuilder);
      searchRequestBuilder.setFrom(0).setSize(60).setExplain(true);
      SearchResponse resp = searchRequestBuilder.execute().actionGet();
      for (SearchHit hit : resp.getHits())
        System.out.println("Hit ID: "+hit.getId());
      node.close();
    }
    catch (Exception e)
    {
      e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
    }


Output of this hits :
Hit ID: 4
Hit ID: 2

Reply | Threaded
Open this post in threaded view
|

Re: Embedded ElasticSearch On Java

feenz
This post has NOT been accepted by the mailing list yet.
I continue to run into the same issue...

NoSuchMethodError: org.apache.log4j.Logger.isTraceEnable()z ...

I have included these in my pom:

elasticsearch-1.3.1.jar

slf4j-api-1.7.7.jar
slf4j-ext-1.7.7.jar
log4j-core-2.0-rc2.jar
log4j-api-2.0-rc2.jar
log4j-slf4j-impl-2.0-rc2.jar

How did you end up overcoming this problem???
Reply | Threaded
Open this post in threaded view
|

Re: Embedded ElasticSearch On Java

feenz
In reply to this post by samCougars
All,

I know this post is old, but I continue to have an issue with this...

I get an NoSuchMethodError: org.apache.log4j.Logger.isTraceEnabled()Z exception when I run

Node node = NodeBuilder.nodeBuilder().local(true).node(); // exception thrown here...
Client client = node.client();

I have tried including several different slf4j and log4j libraries...

Right now I have defined in my pom.xml:

slf4j-api-1.7.7.jar
slf4j-ext-1.7.7.jar
log4j-core-2.0.jar
log4j-api-2.0.jar

Any suggestions?
log4j-slf4j-impl-2.0.jar

On Wednesday, November 30, 2011 6:55:57 PM UTC-5, Sam wrote:
All

I have a webapp (JAVA) with a list of items on the page. All these
items are generated on html with session variables. I want to use
ElasticSearch on the back end to do a search for items with different
search criteria. Is there a sample I can use it as a resource?

Thanks

--
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 [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/78975d76-1c5e-40b3-a4c7-c47f8bbb798b%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Embedded ElasticSearch On Java

Vivek Sachdeva
Have you tried using transport client for connecting... 

On Monday, August 11, 2014 10:26:29 PM UTC+5:30, Kfeenz wrote:
All,

I know this post is old, but I continue to have an issue with this...

I get an NoSuchMethodError: org.apache.log4j.Logger.isTraceEnabled()Z exception when I run

Node node = NodeBuilder.nodeBuilder().local(true).node(); // exception thrown here...
Client client = node.client();

I have tried including several different slf4j and log4j libraries...

Right now I have defined in my pom.xml:

slf4j-api-1.7.7.jar
slf4j-ext-1.7.7.jar
log4j-core-2.0.jar
log4j-api-2.0.jar

Any suggestions?
log4j-slf4j-impl-2.0.jar

On Wednesday, November 30, 2011 6:55:57 PM UTC-5, Sam wrote:
All

I have a webapp (JAVA) with a list of items on the page. All these
items are generated on html with session variables. I want to use
ElasticSearch on the back end to do a search for items with different
search criteria. Is there a sample I can use it as a resource?

Thanks

--
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 [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/fde2361b-1a5f-4882-ab79-106a111f5242%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Embedded ElasticSearch On Java

feenz
So I am very new to elasticsearch... so I apologize in advance..

I started a local instance of elasticsearch and I am trying to connect to it through the Java API.

I was under the impression that the transport client was for remote clients?

I tried:

@Test
public void testIndexResponse() {

  Client client = new TransportClient().setTransportAddress(new InetSocketTransportAddress("localhost", 9300));

  String json = "{" +
   
"\"user\":\"kimchy\"," +
   
"\"postDate\":\"2013-01-30\"," +
   
"\"message\":\"trying out Elasticsearch\"" +
   
"}";

IndexResponse response = client.prepareIndex("twitter", "tweet")
   
.setSource(json)
   
.execute()
   
.actionGet();

  client.close();

  System.out.println(response.getIndex());
}


I receive org.elasticsearch.client.transport.NoNodeAvailableException: None of the configured nodes are available: [].



On Monday, August 11, 2014 1:19:06 PM UTC-4, Vivek Sachdeva wrote:
Have you tried using transport client for connecting... 

On Monday, August 11, 2014 10:26:29 PM UTC+5:30, Kfeenz wrote:
All,

I know this post is old, but I continue to have an issue with this...

I get an NoSuchMethodError: org.apache.log4j.Logger.isTraceEnabled()Z exception when I run

Node node = NodeBuilder.nodeBuilder().local(true).node(); // exception thrown here...
Client client = node.client();

I have tried including several different slf4j and log4j libraries...

Right now I have defined in my pom.xml:

slf4j-api-1.7.7.jar
slf4j-ext-1.7.7.jar
log4j-core-2.0.jar
log4j-api-2.0.jar

Any suggestions?
log4j-slf4j-impl-2.0.jar

On Wednesday, November 30, 2011 6:55:57 PM UTC-5, Sam wrote:
All

I have a webapp (JAVA) with a list of items on the page. All these
items are generated on html with session variables. I want to use
ElasticSearch on the back end to do a search for items with different
search criteria. Is there a sample I can use it as a resource?

Thanks

--
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 [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/f0b50999-be99-4e03-b3ca-e99eb8f9ad4b%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Embedded ElasticSearch On Java

joergprante@gmail.com
1. Never use constructs like " ... = new TransportClient()..." This uses a new client per call which is very inefficient. Use a singleton per JVM instead. Do not forget to close the TransportClient thread pool when JVM shuts down with client.threadPool().close()

2. Use TransportClient settings, you must set the field "cluster.name" with the cluster name you want to connect to. Otherwise, you won't be able to connect to any node.

Jörg


On Mon, Aug 11, 2014 at 8:04 PM, Kfeenz <[hidden email]> wrote:
So I am very new to elasticsearch... so I apologize in advance..

I started a local instance of elasticsearch and I am trying to connect to it through the Java API.

I was under the impression that the transport client was for remote clients?

I tried:

@Test
public void testIndexResponse() {

  Client client = new TransportClient().setTransportAddress(new InetSocketTransportAddress("localhost", 9300));

  String json = "{" +
   
"\"user\":\"kimchy\"," +
   
"\"postDate\":\"2013-01-30\"," +
   
"\"message\":\"trying out Elasticsearch\"" +
   
"}";

IndexResponse response = client.prepareIndex("twitter", "tweet")
   
.setSource(json)
   
.execute()
   
.actionGet();

  client.close();

  System.out.println(response.getIndex());
}


I receive org.elasticsearch.client.transport.NoNodeAvailableException: None of the configured nodes are available: [].




On Monday, August 11, 2014 1:19:06 PM UTC-4, Vivek Sachdeva wrote:
Have you tried using transport client for connecting... 

On Monday, August 11, 2014 10:26:29 PM UTC+5:30, Kfeenz wrote:
All,

I know this post is old, but I continue to have an issue with this...

I get an NoSuchMethodError: org.apache.log4j.Logger.isTraceEnabled()Z exception when I run

Node node = NodeBuilder.nodeBuilder().local(true).node(); // exception thrown here...
Client client = node.client();

I have tried including several different slf4j and log4j libraries...

Right now I have defined in my pom.xml:

slf4j-api-1.7.7.jar
slf4j-ext-1.7.7.jar
log4j-core-2.0.jar
log4j-api-2.0.jar

Any suggestions?
log4j-slf4j-impl-2.0.jar

On Wednesday, November 30, 2011 6:55:57 PM UTC-5, Sam wrote:
All

I have a webapp (JAVA) with a list of items on the page. All these
items are generated on html with session variables. I want to use
ElasticSearch on the back end to do a search for items with different
search criteria. Is there a sample I can use it as a resource?

Thanks

--
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 [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/f0b50999-be99-4e03-b3ca-e99eb8f9ad4b%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 [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/CAKdsXoH6EqTfLw3ACrbTi9twWw1ojegfo7UtydVp3dfR1dDfvg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Embedded ElasticSearch On Java

Vivek Sachdeva
In reply to this post by feenz
Replace 

.setTransportAddress(new InetSocketTransportAddress("localhost", 9300)); 

with

.addTransportAddress(new InetSocketTransportAddress('localhost', 9300)).

And I guess if you dont give cluster name, it automatically joins the default cluster.

I tried the code that you provided and changed above mentioned code. It works on my end. Can you try it?

On Monday, August 11, 2014 11:34:43 PM UTC+5:30, Kfeenz wrote:
So I am very new to elasticsearch... so I apologize in advance..

I started a local instance of elasticsearch and I am trying to connect to it through the Java API.

I was under the impression that the transport client was for remote clients?

I tried:

@Test
public void testIndexResponse() {

  Client client = new TransportClient().setTransportAddress(new InetSocketTransportAddress("localhost", 9300));

  String json = "{" +
   
"\"user\":\"kimchy\"," +
   
"\"postDate\":\"2013-01-30\"," +
   
"\"message\":\"trying out Elasticsearch\"" +
   
"}";

IndexResponse response = client.prepareIndex("twitter", "tweet")
   
.setSource(json)
   
.execute()
   
.actionGet();

  client.close();

  System.out.println(response.getIndex());
}


I receive org.elasticsearch.client.transport.NoNodeAvailableException: None of the configured nodes are available: [].



On Monday, August 11, 2014 1:19:06 PM UTC-4, Vivek Sachdeva wrote:
Have you tried using transport client for connecting... 

On Monday, August 11, 2014 10:26:29 PM UTC+5:30, Kfeenz wrote:
All,

I know this post is old, but I continue to have an issue with this...

I get an NoSuchMethodError: org.apache.log4j.Logger.isTraceEnabled()Z exception when I run

Node node = NodeBuilder.nodeBuilder().local(true).node(); // exception thrown here...
Client client = node.client();

I have tried including several different slf4j and log4j libraries...

Right now I have defined in my pom.xml:

slf4j-api-1.7.7.jar
slf4j-ext-1.7.7.jar
log4j-core-2.0.jar
log4j-api-2.0.jar

Any suggestions?
log4j-slf4j-impl-2.0.jar

On Wednesday, November 30, 2011 6:55:57 PM UTC-5, Sam wrote:
All

I have a webapp (JAVA) with a list of items on the page. All these
items are generated on html with session variables. I want to use
ElasticSearch on the back end to do a search for items with different
search criteria. Is there a sample I can use it as a resource?

Thanks

--
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 [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/cc92ae76-4d7f-4ef3-8a29-1df4755ca3d0%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Embedded ElasticSearch On Java

feenz
@Jorg,

Thanks for the advice, I will make sure that I do so during actual implementation, but this is purely for testing the connection.. Also, I see a client.close() and a client.threadPool().shutdown(), but I do not see a client.threadPool().close(). I am using ES v1.3.1.

@ Vivek,

I am not sure how you were able to use 'localhost' vise "localhost". Java complains about an invalid character constant because 'localhost' is not a character but a String...

My current code is as follows... with still no luck...

Settings settings = ImmutableSettings.settingsBuilder().put("cluster.name", "mycluster").build();

Client client = new TransportClient(settings).addTransportAddress(new InetSocketTransportAddress("localhost", 9300));

ClusterStatsRequestBuilder builder = client.admin().cluster().prepareClusterStats();

ClusterStatsResponse response = builder.execute().actionGet(); // fails on execute... NoNodeAvailableException

assertEquals("mycluster", response.getClusterName()); // never gets to this point

NoNodeAvailableException: None of the configured nodes are available []


If I add a setting to the settings object

    .put("client.transport.sniff", true);

I get a different error - [org.elasticsearch.client.transport] [Argus] failed to get local cluster state info for [#transport#-1]...

I can query the cluster using http://localhost:9200/_cluster/health?pretty=true which returns

{
  "cluster_name" : "mycluster",
  "status" : "green",
  "timed_out" : false,
  "number_of_nodes" : 1,
  "number_of_data_nodes" : 1,
  "active_primary_shards" : 0,
  "active_shards" : 0,
  "relocating_shards" : 0,
  "initializing_shards" : 0,
  "unassigned_shards" : 0
}

I am on Windows 7 64-bit.
I am using Java 1.7_u55.

I am using ES version 1.3.1.
I have included
in my pom.xml:
  - elasticsearch-1.3.1.jar
  - lucene-core-4.9.0.jar


Any other suggestions are greatly appreciated.



On Tuesday, August 12, 2014 5:45:16 AM UTC-4, Vivek Sachdeva wrote:
Replace 

.setTransportAddress(new InetSocketTransportAddress("localhost", 9300)); 

with

.addTransportAddress(new InetSocketTransportAddress('localhost', 9300)).

And I guess if you dont give cluster name, it automatically joins the default cluster.

I tried the code that you provided and changed above mentioned code. It works on my end. Can you try it?

On Monday, August 11, 2014 11:34:43 PM UTC+5:30, Kfeenz wrote:
So I am very new to elasticsearch... so I apologize in advance..

I started a local instance of elasticsearch and I am trying to connect to it through the Java API.

I was under the impression that the transport client was for remote clients?

I tried:

@Test
public void testIndexResponse() {

  Client client = new TransportClient().setTransportAddress(new InetSocketTransportAddress("localhost", 9300));

  String json = "{" +
   
"\"user\":\"kimchy\"," +
   
"\"postDate\":\"2013-01-30\"," +
   
"\"message\":\"trying out Elasticsearch\"" +
   
"}";

IndexResponse response = client.prepareIndex("twitter", "tweet")
   
.setSource(json)
   
.execute()
   
.actionGet();

  client.close();

  System.out.println(response.getIndex());
}


I receive org.elasticsearch.client.transport.NoNodeAvailableException: None of the configured nodes are available: [].



On Monday, August 11, 2014 1:19:06 PM UTC-4, Vivek Sachdeva wrote:
Have you tried using transport client for connecting... 

On Monday, August 11, 2014 10:26:29 PM UTC+5:30, Kfeenz wrote:
All,

I know this post is old, but I continue to have an issue with this...

I get an NoSuchMethodError: org.apache.log4j.Logger.isTraceEnabled()Z exception when I run

Node node = NodeBuilder.nodeBuilder().local(true).node(); // exception thrown here...
Client client = node.client();

I have tried including several different slf4j and log4j libraries...

Right now I have defined in my pom.xml:

slf4j-api-1.7.7.jar
slf4j-ext-1.7.7.jar
log4j-core-2.0.jar
log4j-api-2.0.jar

Any suggestions?
log4j-slf4j-impl-2.0.jar

On Wednesday, November 30, 2011 6:55:57 PM UTC-5, Sam wrote:
All

I have a webapp (JAVA) with a list of items on the page. All these
items are generated on html with session variables. I want to use
ElasticSearch on the back end to do a search for items with different
search criteria. Is there a sample I can use it as a resource?

Thanks

--
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 [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/090eaed6-ce13-4460-8db1-b6913e6f1582%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Embedded ElasticSearch On Java

Vivek Sachdeva
Actually I am using groovy... So 'localhost' and "localhost" are same fr me... Are you getting object of transport client in your code...


On Tuesday, August 12, 2014, Kfeenz <[hidden email]> wrote:
@Jorg,

Thanks for the advice, I will make sure that I do so during actual implementation, but this is purely for testing the connection.. Also, I see a client.close() and a client.threadPool().shutdown(), but I do not see a client.threadPool().close(). I am using ES v1.3.1.

@ Vivek,

I am not sure how you were able to use 'localhost' vise "localhost". Java complains about an invalid character constant because 'localhost' is not a character but a String...

My current code is as follows... with still no luck...

Settings settings = ImmutableSettings.settingsBuilder().put("cluster.name", "mycluster").build();

Client client = new TransportClient(settings).addTransportAddress(new InetSocketTransportAddress("localhost", 9300));

ClusterStatsRequestBuilder builder = client.admin().cluster().prepareClusterStats();

ClusterStatsResponse response = builder.execute().actionGet(); // fails on execute... NoNodeAvailableException

assertEquals("mycluster", response.getClusterName()); // never gets to this point

NoNodeAvailableException: None of the configured nodes are available []


If I add a setting to the settings object

    .put("client.transport.sniff", true);

I get a different error - [org.elasticsearch.client.transport] [Argus] failed to get local cluster state info for [#transport#-1]...

I can query the cluster using http://localhost:9200/_cluster/health?pretty=true which returns

{
  "cluster_name" : "mycluster",
  "status" : "green",
  "timed_out" : false,
  "number_of_nodes" : 1,
  "number_of_data_nodes" : 1,
  "active_primary_shards" : 0,
  "active_shards" : 0,
  "relocating_shards" : 0,
  "initializing_shards" : 0,
  "unassigned_shards" : 0
}

I am on Windows 7 64-bit.
I am using Java 1.7_u55.

I am using ES version 1.3.1.
I have included
in my pom.xml:
  - elasticsearch-1.3.1.jar
  - lucene-core-4.9.0.jar


Any other suggestions are greatly appreciated.



On Tuesday, August 12, 2014 5:45:16 AM UTC-4, Vivek Sachdeva wrote:
Replace 

.setTransportAddress(new InetSocketTransportAddress("localhost", 9300)); 

with

.addTransportAddress(new InetSocketTransportAddress('localhost', 9300)).

And I guess if you dont give cluster name, it automatically joins the default cluster.

I tried the code that you provided and changed above mentioned code. It works on my end. Can you try it?

On Monday, August 11, 2014 11:34:43 PM UTC+5:30, Kfeenz wrote:
So I am very new to elasticsearch... so I apologize in advance..

I started a local instance of elasticsearch and I am trying to connect to it through the Java API.

I was under the impression that the transport client was for remote clients?

I tried:

@Test
public void testIndexResponse() {

  Client client = new TransportClient().setTransportAddress(new InetSocketTransportAddress("localhost", 9300));

  String json = "{" +
   
"\"user\":\"kimchy\"," +
   
"\"postDate\":\"2013-01-30\"," +
   
"\"message\":\"trying out Elasticsearch\"" +
   
"}";

IndexResponse response = client.prepareIndex("twitter", "tweet")
   
.setSource(json)
   
.execute()
   
.actionGet();

  client.close();

  System.out.println(response.getIndex());
}


I receive org.elasticsearch.client.transport.NoNodeAvailableException: None of the configured nodes are available: [].



On Monday, August 11, 2014 1:19:06 PM UTC-4, Vivek Sachdeva wrote:
Have you tried using transport client for connecting... 

On Monday, August 11, 2014 10:26:29 PM UTC+5:30, Kfeenz wrote:
All,

I know this post is old, but I continue to have an issue with this...

I get an NoSuchMethodError: org.apache.log4j.Logger.isTraceEnabled()Z exception when I run

Node node = NodeBuilder.nodeBuilder().local(true).node(); // exception thrown here...
Client client = node.client();

I have tried including several different slf4j and log4j libraries...

Right now I have defined in my pom.xml:

slf4j-api-1.7.7.jar
slf4j-ext-1.7.7.jar
log4j-core-2.0.jar
log4j-api-2.0.jar

Any suggestions?
log4j-slf4j-impl-2.0.jar

On Wednesday, November 30, 2011 6:55:57 PM UTC-5, Sam wrote:
All

I have a webapp (JAVA) with a list of items on the page. All these
items are generated on html with session variables. I want to use
ElasticSearch on the back end to do a search for items with different
search criteria. Is there a sample I can use it as a resource?

Thanks

--
You received this message because you are subscribed to a topic in the Google Groups "elasticsearch" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/elasticsearch/hl0P0NpCteQ/unsubscribe.
To unsubscribe from this group and all its topics, send an email to <a href="javascript:_e(%7B%7D,&#39;cvml&#39;,&#39;elasticsearch%2Bunsubscribe@googlegroups.com&#39;);" target="_blank">elasticsearch+unsubscribe@....
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/090eaed6-ce13-4460-8db1-b6913e6f1582%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


--
Thanks & Regards.
Vivek Sachdeva
Intelligrape Software Pvt. Ltd.

--
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 [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/CABpbMD2pY7%2B1YwRkR1d%2BKgv%3DEDU9vNuwaVGf0xL5xBA8aG27Qg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Embedded ElasticSearch On Java

feenz
Yes I receive back a TransportClient back from the call client = new TransportClient()

In debug I see that the nodeService.clusterName.value = "mycluster" as expected.

But it still fails on the execute() call

On Tuesday, August 12, 2014 10:29:30 AM UTC-4, Vivek Sachdeva wrote:
Actually I am using groovy... So 'localhost' and "localhost" are same fr me... Are you getting object of transport client in your code...


On Tuesday, August 12, 2014, Kfeenz <<a href="javascript:" target="_blank" gdf-obfuscated-mailto="rsHDDffcs5MJ" onmousedown="this.href='javascript:';return true;" onclick="this.href='javascript:';return true;">kfeen...@...> wrote:
@Jorg,

Thanks for the advice, I will make sure that I do so during actual implementation, but this is purely for testing the connection.. Also, I see a client.close() and a client.threadPool().shutdown(), but I do not see a client.threadPool().close(). I am using ES v1.3.1.

@ Vivek,

I am not sure how you were able to use 'localhost' vise "localhost". Java complains about an invalid character constant because 'localhost' is not a character but a String...

My current code is as follows... with still no luck...

Settings settings = ImmutableSettings.settingsBuilder().put("<a href="http://cluster.name" target="_blank" onmousedown="this.href='http://www.google.com/url?q\75http%3A%2F%2Fcluster.name\46sa\75D\46sntz\0751\46usg\75AFQjCNGbdss-_rGgAY2He8KM6ZUy2TdG8g';return true;" onclick="this.href='http://www.google.com/url?q\75http%3A%2F%2Fcluster.name\46sa\75D\46sntz\0751\46usg\75AFQjCNGbdss-_rGgAY2He8KM6ZUy2TdG8g';return true;">cluster.name", "mycluster").build();

Client client = new TransportClient(settings).addTransportAddress(new InetSocketTransportAddress("localhost", 9300));

ClusterStatsRequestBuilder builder = client.admin().cluster().prepareClusterStats();

ClusterStatsResponse response = builder.execute().actionGet(); // fails on execute... NoNodeAvailableException

assertEquals("mycluster", response.getClusterName()); // never gets to this point

NoNodeAvailableException: None of the configured nodes are available []


If I add a setting to the settings object

    .put("client.transport.sniff", true);

I get a different error - [org.elasticsearch.client.transport] [Argus] failed to get local cluster state info for [#transport#-1]...

I can query the cluster using <a href="http://localhost:9200/_cluster/health?pretty=true" target="_blank" onmousedown="this.href='http://www.google.com/url?q\75http%3A%2F%2Flocalhost%3A9200%2F_cluster%2Fhealth%3Fpretty%3Dtrue\46sa\75D\46sntz\0751\46usg\75AFQjCNGrXQSLZT9eF0AZc90wBUPa5d6Aag';return true;" onclick="this.href='http://www.google.com/url?q\75http%3A%2F%2Flocalhost%3A9200%2F_cluster%2Fhealth%3Fpretty%3Dtrue\46sa\75D\46sntz\0751\46usg\75AFQjCNGrXQSLZT9eF0AZc90wBUPa5d6Aag';return true;">http://localhost:9200/_cluster/health?pretty=true which returns

{
  "cluster_name" : "mycluster",
  "status" : "green",
  "timed_out" : false,
  "number_of_nodes" : 1,
  "number_of_data_nodes" : 1,
  "active_primary_shards" : 0,
  "active_shards" : 0,
  "relocating_shards" : 0,
  "initializing_shards" : 0,
  "unassigned_shards" : 0
}

I am on Windows 7 64-bit.
I am using Java 1.7_u55.

I am using ES version 1.3.1.
I have included
in my pom.xml:
  - elasticsearch-1.3.1.jar
  - lucene-core-4.9.0.jar


Any other suggestions are greatly appreciated.



On Tuesday, August 12, 2014 5:45:16 AM UTC-4, Vivek Sachdeva wrote:
Replace 

.setTransportAddress(new InetSocketTransportAddress("localhost", 9300)); 

with

.addTransportAddress(new InetSocketTransportAddress('localhost', 9300)).

And I guess if you dont give cluster name, it automatically joins the default cluster.

I tried the code that you provided and changed above mentioned code. It works on my end. Can you try it?

On Monday, August 11, 2014 11:34:43 PM UTC+5:30, Kfeenz wrote:
So I am very new to elasticsearch... so I apologize in advance..

I started a local instance of elasticsearch and I am trying to connect to it through the Java API.

I was under the impression that the transport client was for remote clients?

I tried:

@Test
public void testIndexResponse() {

  Client client = new TransportClient().setTransportAddress(new InetSocketTransportAddress("localhost", 9300));

  String json = "{" +
   
"\"user\":\"kimchy\"," +
   
"\"postDate\":\"2013-01-30\"," +
   
"\"message\":\"trying out Elasticsearch\"" +
   
"}";

IndexResponse response = client.prepareIndex("twitter", "tweet")
   
.setSource(json)
   
.execute()
   
.actionGet();

  client.close();

  System.out.println(response.getIndex());
}


I receive org.elasticsearch.client.transport.NoNodeAvailableException: None of the configured nodes are available: [].



On Monday, August 11, 2014 1:19:06 PM UTC-4, Vivek Sachdeva wrote:
Have you tried using transport client for connecting... 

On Monday, August 11, 2014 10:26:29 PM UTC+5:30, Kfeenz wrote:
All,

I know this post is old, but I continue to have an issue with this...

I get an NoSuchMethodError: org.apache.log4j.Logger.isTraceEnabled()Z exception when I run

Node node = NodeBuilder.nodeBuilder().local(true).node(); // exception thrown here...
Client client = node.client();

I have tried including several different slf4j and log4j libraries...

Right now I have defined in my pom.xml:

slf4j-api-1.7.7.jar
slf4j-ext-1.7.7.jar
log4j-core-2.0.jar
log4j-api-2.0.jar

Any suggestions?
log4j-slf4j-impl-2.0.jar

On Wednesday, November 30, 2011 6:55:57 PM UTC-5, Sam wrote:
All

I have a webapp (JAVA) with a list of items on the page. All these
items are generated on html with session variables. I want to use
ElasticSearch on the back end to do a search for items with different
search criteria. Is there a sample I can use it as a resource?

Thanks

--
You received this message because you are subscribed to a topic in the Google Groups "elasticsearch" group.
To unsubscribe from this topic, visit <a href="https://groups.google.com/d/topic/elasticsearch/hl0P0NpCteQ/unsubscribe" target="_blank" onmousedown="this.href='https://groups.google.com/d/topic/elasticsearch/hl0P0NpCteQ/unsubscribe';return true;" onclick="this.href='https://groups.google.com/d/topic/elasticsearch/hl0P0NpCteQ/unsubscribe';return true;">https://groups.google.com/d/topic/elasticsearch/hl0P0NpCteQ/unsubscribe.
To unsubscribe from this group and all its topics, send an email to elasticsearch+unsubscribe@googlegroups.com.
To view this discussion on the web visit <a href="https://groups.google.com/d/msgid/elasticsearch/090eaed6-ce13-4460-8db1-b6913e6f1582%40googlegroups.com?utm_medium=email&amp;utm_source=footer" target="_blank" onmousedown="this.href='https://groups.google.com/d/msgid/elasticsearch/090eaed6-ce13-4460-8db1-b6913e6f1582%40googlegroups.com?utm_medium\75email\46utm_source\75footer';return true;" onclick="this.href='https://groups.google.com/d/msgid/elasticsearch/090eaed6-ce13-4460-8db1-b6913e6f1582%40googlegroups.com?utm_medium\75email\46utm_source\75footer';return true;">https://groups.google.com/d/msgid/elasticsearch/090eaed6-ce13-4460-8db1-b6913e6f1582%40googlegroups.com.
For more options, visit <a href="https://groups.google.com/d/optout" target="_blank" onmousedown="this.href='https://groups.google.com/d/optout';return true;" onclick="this.href='https://groups.google.com/d/optout';return true;">https://groups.google.com/d/optout.


--
Thanks & Regards.
Vivek Sachdeva
Intelligrape Software Pvt. Ltd.

--
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 [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/f8df74fe-dc07-4421-892f-e2417ba56387%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Embedded ElasticSearch On Java

joergprante@gmail.com
In reply to this post by feenz
Yes, it's client.threadPool().shutdown(). 

Jörg


On Tue, Aug 12, 2014 at 4:17 PM, Kfeenz <[hidden email]> wrote:
@Jorg,

Thanks for the advice, I will make sure that I do so during actual implementation, but this is purely for testing the connection.. Also, I see a client.close() and a client.threadPool().shutdown(), but I do not see a client.threadPool().close(). I am using ES v1.3.1.

@ Vivek,

I am not sure how you were able to use 'localhost' vise "localhost". Java complains about an invalid character constant because 'localhost' is not a character but a String...

My current code is as follows... with still no luck...

Settings settings = ImmutableSettings.settingsBuilder().put("cluster.name", "mycluster").build();

Client client = new TransportClient(settings).addTransportAddress(new InetSocketTransportAddress("localhost", 9300));

ClusterStatsRequestBuilder builder = client.admin().cluster().prepareClusterStats();

ClusterStatsResponse response = builder.execute().actionGet(); // fails on execute... NoNodeAvailableException

assertEquals("mycluster", response.getClusterName()); // never gets to this point

NoNodeAvailableException: None of the configured nodes are available []


If I add a setting to the settings object

    .put("client.transport.sniff", true);

I get a different error - [org.elasticsearch.client.transport] [Argus] failed to get local cluster state info for [#transport#-1]...

I can query the cluster using http://localhost:9200/_cluster/health?pretty=true which returns

{
  "cluster_name" : "mycluster",
  "status" : "green",
  "timed_out" : false,
  "number_of_nodes" : 1,
  "number_of_data_nodes" : 1,
  "active_primary_shards" : 0,
  "active_shards" : 0,
  "relocating_shards" : 0,
  "initializing_shards" : 0,
  "unassigned_shards" : 0
}

I am on Windows 7 64-bit.
I am using Java 1.7_u55.

I am using ES version 1.3.1.
I have included
in my pom.xml:
  - elasticsearch-1.3.1.jar
  - lucene-core-4.9.0.jar


Any other suggestions are greatly appreciated.



On Tuesday, August 12, 2014 5:45:16 AM UTC-4, Vivek Sachdeva wrote:
Replace 

.setTransportAddress(new InetSocketTransportAddress("localhost", 9300)); 

with

.addTransportAddress(new InetSocketTransportAddress('localhost', 9300)).

And I guess if you dont give cluster name, it automatically joins the default cluster.

I tried the code that you provided and changed above mentioned code. It works on my end. Can you try it?

On Monday, August 11, 2014 11:34:43 PM UTC+5:30, Kfeenz wrote:
So I am very new to elasticsearch... so I apologize in advance..

I started a local instance of elasticsearch and I am trying to connect to it through the Java API.

I was under the impression that the transport client was for remote clients?

I tried:

@Test
public void testIndexResponse() {

  Client client = new TransportClient().setTransportAddress(new InetSocketTransportAddress("localhost", 9300));

  String json = "{" +
   
"\"user\":\"kimchy\"," +
   
"\"postDate\":\"2013-01-30\"," +
   
"\"message\":\"trying out Elasticsearch\"" +
   
"}";

IndexResponse response = client.prepareIndex("twitter", "tweet")
   
.setSource(json)
   
.execute()
   
.actionGet();

  client.close();

  System.out.println(response.getIndex());
}


I receive org.elasticsearch.client.transport.NoNodeAvailableException: None of the configured nodes are available: [].



On Monday, August 11, 2014 1:19:06 PM UTC-4, Vivek Sachdeva wrote:
Have you tried using transport client for connecting... 

On Monday, August 11, 2014 10:26:29 PM UTC+5:30, Kfeenz wrote:
All,

I know this post is old, but I continue to have an issue with this...

I get an NoSuchMethodError: org.apache.log4j.Logger.isTraceEnabled()Z exception when I run

Node node = NodeBuilder.nodeBuilder().local(true).node(); // exception thrown here...
Client client = node.client();

I have tried including several different slf4j and log4j libraries...

Right now I have defined in my pom.xml:

slf4j-api-1.7.7.jar
slf4j-ext-1.7.7.jar
log4j-core-2.0.jar
log4j-api-2.0.jar

Any suggestions?
log4j-slf4j-impl-2.0.jar

On Wednesday, November 30, 2011 6:55:57 PM UTC-5, Sam wrote:
All

I have a webapp (JAVA) with a list of items on the page. All these
items are generated on html with session variables. I want to use
ElasticSearch on the back end to do a search for items with different
search criteria. Is there a sample I can use it as a resource?

Thanks

--
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 [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/090eaed6-ce13-4460-8db1-b6913e6f1582%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 [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/CAKdsXoE1tA2Mss3C9NgYEc5Cv%2Bft9-CHz3aA_zRpnwWy1RUYvQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Embedded ElasticSearch On Java

Vivek Sachdeva
In reply to this post by feenz
Your code works if you dont add cluster name to it..... Tried with Java this time.. :)


On Tue, Aug 12, 2014 at 7:47 PM, Kfeenz <[hidden email]> wrote:
@Jorg,

Thanks for the advice, I will make sure that I do so during actual implementation, but this is purely for testing the connection.. Also, I see a client.close() and a client.threadPool().shutdown(), but I do not see a client.threadPool().close(). I am using ES v1.3.1.

@ Vivek,

I am not sure how you were able to use 'localhost' vise "localhost". Java complains about an invalid character constant because 'localhost' is not a character but a String...

My current code is as follows... with still no luck...

Settings settings = ImmutableSettings.settingsBuilder().put("cluster.name", "mycluster").build();

Client client = new TransportClient(settings).addTransportAddress(new InetSocketTransportAddress("localhost", 9300));

ClusterStatsRequestBuilder builder = client.admin().cluster().prepareClusterStats();

ClusterStatsResponse response = builder.execute().actionGet(); // fails on execute... NoNodeAvailableException

assertEquals("mycluster", response.getClusterName()); // never gets to this point

NoNodeAvailableException: None of the configured nodes are available []


If I add a setting to the settings object

    .put("client.transport.sniff", true);

I get a different error - [org.elasticsearch.client.transport] [Argus] failed to get local cluster state info for [#transport#-1]...

I can query the cluster using http://localhost:9200/_cluster/health?pretty=true which returns

{
  "cluster_name" : "mycluster",
  "status" : "green",
  "timed_out" : false,
  "number_of_nodes" : 1,
  "number_of_data_nodes" : 1,
  "active_primary_shards" : 0,
  "active_shards" : 0,
  "relocating_shards" : 0,
  "initializing_shards" : 0,
  "unassigned_shards" : 0
}

I am on Windows 7 64-bit.
I am using Java 1.7_u55.

I am using ES version 1.3.1.
I have included
in my pom.xml:
  - elasticsearch-1.3.1.jar
  - lucene-core-4.9.0.jar


Any other suggestions are greatly appreciated.



On Tuesday, August 12, 2014 5:45:16 AM UTC-4, Vivek Sachdeva wrote:
Replace 

.setTransportAddress(new InetSocketTransportAddress("localhost", 9300)); 

with

.addTransportAddress(new InetSocketTransportAddress('localhost', 9300)).

And I guess if you dont give cluster name, it automatically joins the default cluster.

I tried the code that you provided and changed above mentioned code. It works on my end. Can you try it?

On Monday, August 11, 2014 11:34:43 PM UTC+5:30, Kfeenz wrote:
So I am very new to elasticsearch... so I apologize in advance..

I started a local instance of elasticsearch and I am trying to connect to it through the Java API.

I was under the impression that the transport client was for remote clients?

I tried:

@Test
public void testIndexResponse() {

  Client client = new TransportClient().setTransportAddress(new InetSocketTransportAddress("localhost", 9300));

  String json = "{" +
   
"\"user\":\"kimchy\"," +
   
"\"postDate\":\"2013-01-30\"," +
   
"\"message\":\"trying out Elasticsearch\"" +
   
"}";

IndexResponse response = client.prepareIndex("twitter", "tweet")
   
.setSource(json)
   
.execute()
   
.actionGet();

  client.close();

  System.out.println(response.getIndex());
}


I receive org.elasticsearch.client.transport.NoNodeAvailableException: None of the configured nodes are available: [].



On Monday, August 11, 2014 1:19:06 PM UTC-4, Vivek Sachdeva wrote:
Have you tried using transport client for connecting... 

On Monday, August 11, 2014 10:26:29 PM UTC+5:30, Kfeenz wrote:
All,

I know this post is old, but I continue to have an issue with this...

I get an NoSuchMethodError: org.apache.log4j.Logger.isTraceEnabled()Z exception when I run

Node node = NodeBuilder.nodeBuilder().local(true).node(); // exception thrown here...
Client client = node.client();

I have tried including several different slf4j and log4j libraries...

Right now I have defined in my pom.xml:

slf4j-api-1.7.7.jar
slf4j-ext-1.7.7.jar
log4j-core-2.0.jar
log4j-api-2.0.jar

Any suggestions?
log4j-slf4j-impl-2.0.jar

On Wednesday, November 30, 2011 6:55:57 PM UTC-5, Sam wrote:
All

I have a webapp (JAVA) with a list of items on the page. All these
items are generated on html with session variables. I want to use
ElasticSearch on the back end to do a search for items with different
search criteria. Is there a sample I can use it as a resource?

Thanks

--
You received this message because you are subscribed to a topic in the Google Groups "elasticsearch" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/elasticsearch/hl0P0NpCteQ/unsubscribe.
To unsubscribe from this group and all its topics, send an email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/090eaed6-ce13-4460-8db1-b6913e6f1582%40googlegroups.com.

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



--
Thanks & Regards.
Vivek Sachdeva
Intelligrape Software Pvt. Ltd.

--
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 [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/CABpbMD1_b3c-EG6CW9Pd6SYOjQ0jr9ZsFdWVbZoMRtpkGgD3WQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Embedded ElasticSearch On Java

Vivek Sachdeva
The default cluster name is "elasticsearch". Changing it in your code works.... 


On Tue, Aug 12, 2014 at 9:33 PM, Vivek Sachdeva <[hidden email]> wrote:
Your code works if you dont add cluster name to it..... Tried with Java this time.. :)


On Tue, Aug 12, 2014 at 7:47 PM, Kfeenz <[hidden email]> wrote:
@Jorg,

Thanks for the advice, I will make sure that I do so during actual implementation, but this is purely for testing the connection.. Also, I see a client.close() and a client.threadPool().shutdown(), but I do not see a client.threadPool().close(). I am using ES v1.3.1.

@ Vivek,

I am not sure how you were able to use 'localhost' vise "localhost". Java complains about an invalid character constant because 'localhost' is not a character but a String...

My current code is as follows... with still no luck...

Settings settings = ImmutableSettings.settingsBuilder().put("cluster.name", "mycluster").build();

Client client = new TransportClient(settings).addTransportAddress(new InetSocketTransportAddress("localhost", 9300));

ClusterStatsRequestBuilder builder = client.admin().cluster().prepareClusterStats();

ClusterStatsResponse response = builder.execute().actionGet(); // fails on execute... NoNodeAvailableException

assertEquals("mycluster", response.getClusterName()); // never gets to this point

NoNodeAvailableException: None of the configured nodes are available []


If I add a setting to the settings object

    .put("client.transport.sniff", true);

I get a different error - [org.elasticsearch.client.transport] [Argus] failed to get local cluster state info for [#transport#-1]...

I can query the cluster using http://localhost:9200/_cluster/health?pretty=true which returns

{
  "cluster_name" : "mycluster",
  "status" : "green",
  "timed_out" : false,
  "number_of_nodes" : 1,
  "number_of_data_nodes" : 1,
  "active_primary_shards" : 0,
  "active_shards" : 0,
  "relocating_shards" : 0,
  "initializing_shards" : 0,
  "unassigned_shards" : 0
}

I am on Windows 7 64-bit.
I am using Java 1.7_u55.

I am using ES version 1.3.1.
I have included
in my pom.xml:
  - elasticsearch-1.3.1.jar
  - lucene-core-4.9.0.jar


Any other suggestions are greatly appreciated.



On Tuesday, August 12, 2014 5:45:16 AM UTC-4, Vivek Sachdeva wrote:
Replace 

.setTransportAddress(new InetSocketTransportAddress("localhost", 9300)); 

with

.addTransportAddress(new InetSocketTransportAddress('localhost', 9300)).

And I guess if you dont give cluster name, it automatically joins the default cluster.

I tried the code that you provided and changed above mentioned code. It works on my end. Can you try it?

On Monday, August 11, 2014 11:34:43 PM UTC+5:30, Kfeenz wrote:
So I am very new to elasticsearch... so I apologize in advance..

I started a local instance of elasticsearch and I am trying to connect to it through the Java API.

I was under the impression that the transport client was for remote clients?

I tried:

@Test
public void testIndexResponse() {

  Client client = new TransportClient().setTransportAddress(new InetSocketTransportAddress("localhost", 9300));

  String json = "{" +
   
"\"user\":\"kimchy\"," +
   
"\"postDate\":\"2013-01-30\"," +
   
"\"message\":\"trying out Elasticsearch\"" +
   
"}";

IndexResponse response = client.prepareIndex("twitter", "tweet")
   
.setSource(json)
   
.execute()
   
.actionGet();

  client.close();

  System.out.println(response.getIndex());
}


I receive org.elasticsearch.client.transport.NoNodeAvailableException: None of the configured nodes are available: [].



On Monday, August 11, 2014 1:19:06 PM UTC-4, Vivek Sachdeva wrote:
Have you tried using transport client for connecting... 

On Monday, August 11, 2014 10:26:29 PM UTC+5:30, Kfeenz wrote:
All,

I know this post is old, but I continue to have an issue with this...

I get an NoSuchMethodError: org.apache.log4j.Logger.isTraceEnabled()Z exception when I run

Node node = NodeBuilder.nodeBuilder().local(true).node(); // exception thrown here...
Client client = node.client();

I have tried including several different slf4j and log4j libraries...

Right now I have defined in my pom.xml:

slf4j-api-1.7.7.jar
slf4j-ext-1.7.7.jar
log4j-core-2.0.jar
log4j-api-2.0.jar

Any suggestions?
log4j-slf4j-impl-2.0.jar

On Wednesday, November 30, 2011 6:55:57 PM UTC-5, Sam wrote:
All

I have a webapp (JAVA) with a list of items on the page. All these
items are generated on html with session variables. I want to use
ElasticSearch on the back end to do a search for items with different
search criteria. Is there a sample I can use it as a resource?

Thanks

--
You received this message because you are subscribed to a topic in the Google Groups "elasticsearch" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/elasticsearch/hl0P0NpCteQ/unsubscribe.
To unsubscribe from this group and all its topics, send an email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/090eaed6-ce13-4460-8db1-b6913e6f1582%40googlegroups.com.

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



--
Thanks & Regards.
Vivek Sachdeva
Intelligrape Software Pvt. Ltd.



--
Thanks & Regards.
Vivek Sachdeva
Intelligrape Software Pvt. Ltd.

--
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 [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/CABpbMD27qxADRUfjr1DpZh%3D8sWT_i9a4b14A%2B%3DBKMW41maSyPg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Embedded ElasticSearch On Java

feenz
I must be doing something wrong.... I continue to get the same error.... I removed the cluster.name in the settings and still get the same error.

Elasticsearch is running on the same machine that I am trying to connect with the client. Is TransportClient the correct way to connect? Or should I be using Node?

I tried this....

Node node = nodeBuilder().client(true).loadConfigSettings(false).settings(settings).node();

This returns the error NoSuchMethodError: java.lang.NoSuchMethodError: org.apache.log4j.Logger.isTraceEnabled()Z at org.elasticsearch.common.logging.log4j.Log4jESLogger.isTraceEnabled()

I have included the log4j-1.4.0.jar that came packaged with the version of elasticsearch-1.3.1 ....


On Tue, Aug 12, 2014 at 12:13 PM, Vivek Sachdeva [via ElasticSearch Users] <[hidden email]> wrote:
The default cluster name is "elasticsearch". Changing it in your code works.... 


On Tue, Aug 12, 2014 at 9:33 PM, Vivek Sachdeva <[hidden email]> wrote:
Your code works if you dont add cluster name to it..... Tried with Java this time.. :)


On Tue, Aug 12, 2014 at 7:47 PM, Kfeenz <[hidden email]> wrote:
@Jorg,

Thanks for the advice, I will make sure that I do so during actual implementation, but this is purely for testing the connection.. Also, I see a client.close() and a client.threadPool().shutdown(), but I do not see a client.threadPool().close(). I am using ES v1.3.1.

@ Vivek,

I am not sure how you were able to use 'localhost' vise "localhost". Java complains about an invalid character constant because 'localhost' is not a character but a String...

My current code is as follows... with still no luck...

Settings settings = ImmutableSettings.settingsBuilder().put("cluster.name", "mycluster").build();

Client client = new TransportClient(settings).addTransportAddress(new InetSocketTransportAddress("localhost", 9300));

ClusterStatsRequestBuilder builder = client.admin().cluster().prepareClusterStats();

ClusterStatsResponse response = builder.execute().actionGet(); // fails on execute... NoNodeAvailableException

assertEquals("mycluster", response.getClusterName()); // never gets to this point

NoNodeAvailableException: None of the configured nodes are available []


If I add a setting to the settings object

    .put("client.transport.sniff", true);

I get a different error - [org.elasticsearch.client.transport] [Argus] failed to get local cluster state info for [#transport#-1]...

I can query the cluster using http://localhost:9200/_cluster/health?pretty=true which returns

{
  "cluster_name" : "mycluster",
  "status" : "green",
  "timed_out" : false,
  "number_of_nodes" : 1,
  "number_of_data_nodes" : 1,
  "active_primary_shards" : 0,
  "active_shards" : 0,
  "relocating_shards" : 0,
  "initializing_shards" : 0,
  "unassigned_shards" : 0
}

I am on Windows 7 64-bit.
I am using Java 1.7_u55.

I am using ES version 1.3.1.
I have included
in my pom.xml:
  - elasticsearch-1.3.1.jar
  - lucene-core-4.9.0.jar


Any other suggestions are greatly appreciated.



On Tuesday, August 12, 2014 5:45:16 AM UTC-4, Vivek Sachdeva wrote:
Replace 

.setTransportAddress(new InetSocketTransportAddress("localhost", 9300)); 

with

.addTransportAddress(new InetSocketTransportAddress('localhost', 9300)).

And I guess if you dont give cluster name, it automatically joins the default cluster.

I tried the code that you provided and changed above mentioned code. It works on my end. Can you try it?

On Monday, August 11, 2014 11:34:43 PM UTC+5:30, Kfeenz wrote:
So I am very new to elasticsearch... so I apologize in advance..

I started a local instance of elasticsearch and I am trying to connect to it through the Java API.

I was under the impression that the transport client was for remote clients?

I tried:

@Test
public void testIndexResponse() {

  Client client = new TransportClient().setTransportAddress(new InetSocketTransportAddress("localhost", 9300));

  String json = "{" +
   
"\"user\":\"kimchy\"," +
   
"\"postDate\":\"2013-01-30\"," +
   
"\"message\":\"trying out Elasticsearch\"" +
   
"}";

IndexResponse response = client.prepareIndex("twitter", "tweet")
   
.setSource(json)
   
.execute()
   
.actionGet();

  client.close();

  System.out.println(response.getIndex());
}


I receive org.elasticsearch.client.transport.NoNodeAvailableException: None of the configured nodes are available: [].



On Monday, August 11, 2014 1:19:06 PM UTC-4, Vivek Sachdeva wrote:
Have you tried using transport client for connecting... 

On Monday, August 11, 2014 10:26:29 PM UTC+5:30, Kfeenz wrote:
All,

I know this post is old, but I continue to have an issue with this...

I get an NoSuchMethodError: org.apache.log4j.Logger.isTraceEnabled()Z exception when I run

Node node = NodeBuilder.nodeBuilder().local(true).node(); // exception thrown here...
Client client = node.client();

I have tried including several different slf4j and log4j libraries...

Right now I have defined in my pom.xml:

slf4j-api-1.7.7.jar
slf4j-ext-1.7.7.jar
log4j-core-2.0.jar
log4j-api-2.0.jar

Any suggestions?
log4j-slf4j-impl-2.0.jar

On Wednesday, November 30, 2011 6:55:57 PM UTC-5, Sam wrote:
All

I have a webapp (JAVA) with a list of items on the page. All these
items are generated on html with session variables. I want to use
ElasticSearch on the back end to do a search for items with different
search criteria. Is there a sample I can use it as a resource?

Thanks

--
You received this message because you are subscribed to a topic in the Google Groups "elasticsearch" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/elasticsearch/hl0P0NpCteQ/unsubscribe.
To unsubscribe from this group and all its topics, send an email to [hidden email].



--
Thanks & Regards.
Vivek Sachdeva
Intelligrape Software Pvt. Ltd.



--
Thanks & Regards.
Vivek Sachdeva
Intelligrape Software Pvt. Ltd.

--
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 [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/CABpbMD27qxADRUfjr1DpZh%3D8sWT_i9a4b14A%2B%3DBKMW41maSyPg%40mail.gmail.com.

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



If you reply to this email, your message will be added to the discussion below:
http://elasticsearch-users.115913.n3.nabble.com/Embedded-ElasticSearch-On-Java-tp3550161p4061741.html
To unsubscribe from Embedded ElasticSearch On Java, click here.
NAML

Reply | Threaded
Open this post in threaded view
|

Re: Embedded ElasticSearch On Java

Vivek Sachdeva
If your project is not really big, maybe you can send it here or directly...



On Tue, Aug 12, 2014 at 11:19 PM, feenz <[hidden email]> wrote:
I must be doing something wrong.... I continue to get the same error.... I removed the cluster.name in the settings and still get the same error.

Elasticsearch is running on the same machine that I am trying to connect with the client. Is TransportClient the correct way to connect? Or should I be using Node?

I tried this....

Node node = nodeBuilder().client(true).loadConfigSettings(false).settings(settings).node();

This returns the error NoSuchMethodError: java.lang.NoSuchMethodError: org.apache.log4j.Logger.isTraceEnabled()Z at org.elasticsearch.common.logging.log4j.Log4jESLogger.isTraceEnabled()

I have included the log4j-1.4.0.jar that came packaged with the version of elasticsearch-1.3.1 ....


On Tue, Aug 12, 2014 at 12:13 PM, Vivek Sachdeva [via ElasticSearch Users] <[hidden email]> wrote:
The default cluster name is "elasticsearch". Changing it in your code works.... 


On Tue, Aug 12, 2014 at 9:33 PM, Vivek Sachdeva <[hidden email]> wrote:
Your code works if you dont add cluster name to it..... Tried with Java this time.. :)


On Tue, Aug 12, 2014 at 7:47 PM, Kfeenz <[hidden email]> wrote:
@Jorg,

Thanks for the advice, I will make sure that I do so during actual implementation, but this is purely for testing the connection.. Also, I see a client.close() and a client.threadPool().shutdown(), but I do not see a client.threadPool().close(). I am using ES v1.3.1.

@ Vivek,

I am not sure how you were able to use 'localhost' vise "localhost". Java complains about an invalid character constant because 'localhost' is not a character but a String...

My current code is as follows... with still no luck...

Settings settings = ImmutableSettings.settingsBuilder().put("cluster.name", "mycluster").build();

Client client = new TransportClient(settings).addTransportAddress(new InetSocketTransportAddress("localhost", 9300));

ClusterStatsRequestBuilder builder = client.admin().cluster().prepareClusterStats();

ClusterStatsResponse response = builder.execute().actionGet(); // fails on execute... NoNodeAvailableException

assertEquals("mycluster", response.getClusterName()); // never gets to this point

NoNodeAvailableException: None of the configured nodes are available []


If I add a setting to the settings object

    .put("client.transport.sniff", true);

I get a different error - [org.elasticsearch.client.transport] [Argus] failed to get local cluster state info for [#transport#-1]...

I can query the cluster using http://localhost:9200/_cluster/health?pretty=true which returns

{
  "cluster_name" : "mycluster",
  "status" : "green",
  "timed_out" : false,
  "number_of_nodes" : 1,
  "number_of_data_nodes" : 1,
  "active_primary_shards" : 0,
  "active_shards" : 0,
  "relocating_shards" : 0,
  "initializing_shards" : 0,
  "unassigned_shards" : 0
}

I am on Windows 7 64-bit.
I am using Java 1.7_u55.

I am using ES version 1.3.1.
I have included
in my pom.xml:
  - elasticsearch-1.3.1.jar
  - lucene-core-4.9.0.jar


Any other suggestions are greatly appreciated.



On Tuesday, August 12, 2014 5:45:16 AM UTC-4, Vivek Sachdeva wrote:
Replace 

.setTransportAddress(new InetSocketTransportAddress("localhost", 9300)); 

with

.addTransportAddress(new InetSocketTransportAddress('localhost', 9300)).

And I guess if you dont give cluster name, it automatically joins the default cluster.

I tried the code that you provided and changed above mentioned code. It works on my end. Can you try it?

On Monday, August 11, 2014 11:34:43 PM UTC+5:30, Kfeenz wrote:
So I am very new to elasticsearch... so I apologize in advance..

I started a local instance of elasticsearch and I am trying to connect to it through the Java API.

I was under the impression that the transport client was for remote clients?

I tried:

@Test
public void testIndexResponse() {

  Client client = new TransportClient().setTransportAddress(new InetSocketTransportAddress("localhost", 9300));

  String json = "{" +
   
"\"user\":\"kimchy\"," +
   
"\"postDate\":\"2013-01-30\"," +
   
"\"message\":\"trying out Elasticsearch\"" +
   
"}";

IndexResponse response = client.prepareIndex("twitter", "tweet")
   
.setSource(json)
   
.execute()
   
.actionGet();

  client.close();

  System.out.println(response.getIndex());
}


I receive org.elasticsearch.client.transport.NoNodeAvailableException: None of the configured nodes are available: [].



On Monday, August 11, 2014 1:19:06 PM UTC-4, Vivek Sachdeva wrote:
Have you tried using transport client for connecting... 

On Monday, August 11, 2014 10:26:29 PM UTC+5:30, Kfeenz wrote:
All,

I know this post is old, but I continue to have an issue with this...

I get an NoSuchMethodError: org.apache.log4j.Logger.isTraceEnabled()Z exception when I run

Node node = NodeBuilder.nodeBuilder().local(true).node(); // exception thrown here...
Client client = node.client();

I have tried including several different slf4j and log4j libraries...

Right now I have defined in my pom.xml:

slf4j-api-1.7.7.jar
slf4j-ext-1.7.7.jar
log4j-core-2.0.jar
log4j-api-2.0.jar

Any suggestions?
log4j-slf4j-impl-2.0.jar

On Wednesday, November 30, 2011 6:55:57 PM UTC-5, Sam wrote:
All

I have a webapp (JAVA) with a list of items on the page. All these
items are generated on html with session variables. I want to use
ElasticSearch on the back end to do a search for items with different
search criteria. Is there a sample I can use it as a resource?

Thanks

--
You received this message because you are subscribed to a topic in the Google Groups "elasticsearch" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/elasticsearch/hl0P0NpCteQ/unsubscribe.
To unsubscribe from this group and all its topics, send an email to [hidden email].



--
Thanks & Regards.
Vivek Sachdeva
Intelligrape Software Pvt. Ltd.



--
Thanks & Regards.
Vivek Sachdeva
Intelligrape Software Pvt. Ltd.

--
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 [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/CABpbMD27qxADRUfjr1DpZh%3D8sWT_i9a4b14A%2B%3DBKMW41maSyPg%40mail.gmail.com.

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



If you reply to this email, your message will be added to the discussion below:
http://elasticsearch-users.115913.n3.nabble.com/Embedded-ElasticSearch-On-Java-tp3550161p4061741.html
To unsubscribe from Embedded ElasticSearch On Java, click here.
NAML



View this message in context: Re: Embedded ElasticSearch On Java
Sent from the ElasticSearch Users mailing list archive at Nabble.com.

--
You received this message because you are subscribed to a topic in the Google Groups "elasticsearch" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/elasticsearch/hl0P0NpCteQ/unsubscribe.
To unsubscribe from this group and all its topics, send an email to [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/CADLVcFs6WWazmzgqxs5-KBCZdt2%2BQEG1whJNvbX7fvFo14sSFg%40mail.gmail.com.

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



--
Thanks & Regards.
Vivek Sachdeva
Intelligrape Software Pvt. Ltd.

--
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 [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/CABpbMD2pScgRzCAPN0vwmnSTqPj%3DDVueg1T5%3DkQ3PoGfs%2Bu%3DDA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.