我正在尝试使用ElasticSearch 5.4.0创建一个ElasticSearch TransportClient。客户端创建如下:
@SuppressWarnings({ "resource", "unchecked" })
private static Client getTransportClient() {
try {
InetSocketTransportAddress inetAddress = new InetSocketTransportAddress(InetAddress.getByName("localhost"), 9300);
client = new PreBuiltTransportClient(Settings.EMPTY).addTransportAddress(inetAddress);
} catch (UnknownHostException e) {
LOGGER.log(Level.WARNING, e.getMessage());
}
return client;
}
Run Code Online (Sandbox Code Playgroud)
现在,在运行时,出现以下错误:
Exception in thread "main" java.lang.VerifyError: class org.elasticsearch.transport.Netty3Plugin overrides final method onModule.(Lorg/elasticsearch/common/network/NetworkModule;)V
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at org.elasticsearch.transport.client.PreBuiltTransportClient.<clinit>(PreBuiltTransportClient.java:54)
at org.personal.elastic.twitter.ElasticUtil.getTransportClient(ElasticUtil.java:65)
at org.personal.elastic.twitter.ElasticUtil.indexTweet(ElasticUtil.java:42)
at …Run Code Online (Sandbox Code Playgroud) 我是Scala Collections的新手,目前我想将给定的字符串列表分成两个列表的元组(List[String], List[String]),其中包含回文字符串列表和其余输入字符串列表.
例如,如果输入List("racecar", "abcd", "lilil", "effg")
应该是(List("racecar", "lilil"), List("abcd", "effg"))
我有一个使用过滤器的解决方案.但是,目前,尝试使用foldLeft优化我的解决方案.我的新方法如下:
def stringTuples2(strings: List[String]): (List[String], List[String]) = {
strings.foldLeft((List[String](), List[String]()))((b, a) => {
if (a.equals(a.reverse)) { b._1 :+ a; b }
else { b._2 :+ a; b }
})}
Run Code Online (Sandbox Code Playgroud)
I am not sure, what I am doing wrong, but the output for this solution is Tuple of two empty lists, i.e. (List(), List()).
Help is appreciated. Thanks!