我正在使用http://openjdk.java.net/projects/code-tools/jmh/进行基准测试,我得到的结果如下:
__PRE__
"得分误差"一栏究竟是什么意思以及如何解释它?
我有一个带有字段"aDate"(以及许多其他字段)的elasticsearch索引,其中包含以下映射
"aDate" : {
"type" : "date",
"format" : "date_optional_time"
}
Run Code Online (Sandbox Code Playgroud)
当我查询文档时,我得到一个结果
"aDate" : 1421179734000,
Run Code Online (Sandbox Code Playgroud)
我知道这是epoch,内部java/elasticsearch日期格式,但我希望得到如下结果:
"aDate" : "2015-01-13T20:08:54",
Run Code Online (Sandbox Code Playgroud)
我玩脚本
{
"query":{
"match_all":{
}
},
"script_fields":{
"aDate":{
"script":"if (!_source.aDate?.equals('null')) new java.text.SimpleDateFormat('yyyy-MM-dd\\'T\\'HH:mm:ss').format(new java.util.Date(_source.aDate));"
}
}
}
Run Code Online (Sandbox Code Playgroud)
但它给出了奇怪的结果(脚本基本上工作,但aDate是唯一返回的字段,而_source缺失).这看起来像
"hits": [{
"_index": "idx1",
"_type": "type2",
"_id": "8770",
"_score": 1.0,
"fields": {
"aDate": ["2015-01-12T17:15:47"]
}
},
Run Code Online (Sandbox Code Playgroud)
如果可能的话,我更喜欢没有脚本的解决方案.
我使用java客户端和PagingState对Cassanda 2.2进行大型结果集的分页,如下所述:https://datastax.github.io/java-driver/2.2.0-rc2/features/paging/
这工作得很好,但我无法找到任何信息Cassandra的行为,当翻阅结果时,插入新记录(或现有的更新).结果中是否包含此类新记录或已更改的记录,或者结果集是否为不可变的?
用例是无状态Web服务,客户端可以在其中查询大型结果集.
编辑:一般的ResultSet分页问题(Cassandra在这里进行自动延迟提取)
EDIT2:据我所知,Cassandra不支持ACID而是支持AID事务,所以在进行结果集时我会期待一种隔离
由于这些限制,我不允许从互联网上安装任何软件包.所以,这个命令对我来说对安装搜索防范没有用.
bin/elasticsearch-plugin install -b com.floragunn:search-guard-ssl:<version>
Run Code Online (Sandbox Code Playgroud)
但是,我可以通过运行上面的命令在不同的网络上成功安装Search Guard.
由于这个原因,我尝试根据文档通过以下命令从tar.gz或zip文件安装Search Guard .
/usr/share/elasticsearch# bin/elasticsearch-plugin install file:///home/xxxx/xxxx/search-guard-5-5.2.0-10-sgadmin-standalone.zip
Run Code Online (Sandbox Code Playgroud)
这个失败,出现以下错误.
-> Downloading file:///home/xxx/xxxx/search-guard-5-5.2.0-10- sgadmin-standalone.zip
[=================================================] 100%
ERROR: `elasticsearch` directory is missing in the plugin zip
Run Code Online (Sandbox Code Playgroud)
我下载的zip/tar.gz的从这个搜索gaurd的Maven仓库.
是否有人也面临同样的问题.如果没有,请帮助解决这个问题.
elasticsearch elasticsearch-plugin elastic-stack elasticsearch-5
我尝试使用Akka 2.4.3将TCP流重定向/转发到另一个Sink.该程序应该打开服务器套接字,侦听传入的连接,然后使用tcp流.我们的发件人不希望/接受我们的回复,所以我们永远不会发回任何东西 - 我们只是消费流.在构建tcp流之后,我们需要将字节转换为更有用的字节并将其发送到接收器.
到目前为止我尝试了以下但是我特别努力解决了如何不将tcp数据包发送回发送方并正确连接接收器的部分.
import scala.util.Failure
import scala.util.Success
import akka.actor.ActorSystem
import akka.event.Logging
import akka.stream.ActorMaterializer
import akka.stream.scaladsl.Sink
import akka.stream.scaladsl.Tcp
import akka.stream.scaladsl.Framing
import akka.util.ByteString
import java.nio.ByteOrder
import akka.stream.scaladsl.Flow
object TcpConsumeOnlyStreamToSink {
implicit val system = ActorSystem("stream-system")
private val log = Logging(system, getClass.getName)
//The Sink
//In reality this is of course a real Sink doing some useful things :-)
//The Sink accept types of "SomethingMySinkUnderstand"
val mySink = Sink.ignore;
def main(args: Array[String]): Unit = {
//our sender is not interested in getting …Run Code Online (Sandbox Code Playgroud) java ×2
acid ×1
akka ×1
akka-stream ×1
benchmarking ×1
cassandra ×1
groovy ×1
jmh ×1
nosql ×1
pagination ×1
performance ×1
scala ×1
tcp ×1