Elasticsearch文档 提示*他们的代码
*文件已修复
GET /cars/transactions/_search?search_type=count
{
"aggs": {
"distinct_colors": {
"cardinality": {
"field": "color"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
对应于sql查询
SELECT DISTINCT(color) FROM cars
Run Code Online (Sandbox Code Playgroud)
但它实际上对应于
SELECT COUNT(DISTINCT(color)) FROM cars
Run Code Online (Sandbox Code Playgroud)
我不想知道我有多少不同的值,但有什么不同的值.谁知道如何实现这一目标?
我像这样反序列化jsons:
{
"type":"a",
"payload" : {...}
}
Run Code Online (Sandbox Code Playgroud)
有效负载类型取决于类型.我的课:
public class Sth<T extends Payload> {
@JsonProperty("type")
private String type;
@Valid
private T payload;
@JsonTypeInfo(
use = JsonTypeInfo.Id.NAME,
include = JsonTypeInfo.As.EXTERNAL_PROPERTY,
property = "type",
visible = true,
defaultImpl = NoClass.class)
@JsonSubTypes({
@JsonSubTypes.Type(value = APayload.class, name = "a"),
@JsonSubTypes.Type(value = BPayload.class, name = "b"),
@JsonSubTypes.Type(value = CPayload.class, name = "c")})
public void setPayload(T payload) {
this.payload = payload;
}
public void setType(String type) {
this.type = type;
}
}
Run Code Online (Sandbox Code Playgroud)
我也输入了没有负载的"d".如果我尝试反序列化:
{
"type":"d",
"payload" …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用封装签名和javax.xml.crypto.dsig.*类来签署xml文件.因此,我获得了具有正确签名内容但未定义命名空间的文件.如何添加xmlns:ds ="http://www.w3.org/2000/09/xmldsig#"命名空间和相应的ds前缀?我没有看到任何可以定义它的地方.
示例代码:
XMLSignatureFactory xmlSignatureFactory = XMLSignatureFactory.getInstance("DOM");
(...)
XMLSignature signature = xmlSignatureFactory.newXMLSignature(signedInfo, keyInfo);
// Marshal, generate, and sign the enveloped signature.
signature.sign(domSignContext);
Run Code Online (Sandbox Code Playgroud)
给出了示例XML:
<?xml version="1.0" encoding="UTF-8"?>
<test xmlns="http://different.namespace.com">
<someBody/>
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
<SignedInfo>
<CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
<Reference URI="">
<Transforms>
<Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
</Transforms>
<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
<DigestValue>base64_digest</DigestValue>
</Reference>
</SignedInfo>
<SignatureValue>some_base64</SignatureValue>
<KeyInfo>
<X509Data>
<X509SubjectName>subject_data</X509SubjectName>
<X509Certificate>some_more_base64</X509Certificate>
</X509Data>
<KeyValue>
<RSAKeyValue>
<Modulus>another_base64</Modulus>
<Exponent>base64_as_well</Exponent>
</RSAKeyValue>
</KeyValue>
</KeyInfo>
</Signature>
</test>
Run Code Online (Sandbox Code Playgroud)
但我想要:
<?xml version="1.0" encoding="UTF-8"?>
<test xmlns="http://different.namespace.com" xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<someBody/>
<ds:Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
<ds:SignedInfo>
<ds:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
<ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
<ds:Reference URI="">
<ds:Transforms> …Run Code Online (Sandbox Code Playgroud) 我想编写一个脚本来构建、测试并将我的应用程序部署到测试环境。我可以使用 sbt 手动运行测试:
sbt test
Run Code Online (Sandbox Code Playgroud)
但它似乎没有返回任何值(只是原始字符串测试结果)。
有没有比我当前的解决方案更好的方法来检查 sbt 测试是否失败:
TESTS_FAILED=`sbt test | grep "sbt.TestsFailedException" | wc -l`
Run Code Online (Sandbox Code Playgroud)
?
我需要将base64编码的数据作为字符串值传递给xml.我注意到下面的代码打印不同的字符串表示.哪一个是正确的,为什么?
String example = "Hello universe!";
byte[] base64data = Base64.encodeBase64(example.getBytes());
System.out.println(new String(base64data));
System.out.println(DatatypeConverter.printBase64Binary(base64data));
System.out.println(new String(Base64.decodeBase64(base64data), "UTF-8"));
Run Code Online (Sandbox Code Playgroud)
而我得到的结果是:
SGVsbG8gdW5pdmVyc2Uh
U0dWc2JHOGdkVzVwZG1WeWMyVWg=
Hello universe!
Run Code Online (Sandbox Code Playgroud)