我正在使用System.IdentityModel.Tokens.Jwt包和下面的代码解码令牌jwt,但它不会给出 exp值?
var handler = new JwtSecurityTokenHandler();
var decodedValue = handler.ReadJwtToken("token");
Run Code Online (Sandbox Code Playgroud)
如何获取exp并与当前DateTime进行比较来计算token是否过期?
更新:
我正在使用Azure.Core.AccessToken我拥有以下属性的地方,
public DateTimeOffset ExpiresOn
{
get;
}
Run Code Online (Sandbox Code Playgroud) 例如,我尝试在给定字段上使用angularjs和elasticsearch创建自动完成功能countryname.它可以包含简单的名称,如"法国","西班牙"或"组合名称",如"塞拉利昂".
在映射中,此字段not_analyzed用于防止弹性标记化"组合名称"
"COUNTRYNAME" : {"type" : "string", "store" : "yes","index": "not_analyzed" }
Run Code Online (Sandbox Code Playgroud)
我需要查询elasticsearch:
我不能在"not_analyzed"字段中使用通配符:
这是我的查询,但"value"变量中的通配符不起作用且区分大小写:
她的工作单独使用通配符:
curl -XGET 'local_host:9200/botanic/specimens/_search?size=0' -d '{
"fields": [
"COUNTRYNAME"
],
"query": {
"query_string": {
"query": "COUNTRYNAME:*"
}
},
"aggs": {
"general": {
"terms": {
"field": "COUNTRYNAME",
"size": 0
}
}
}
}'
Run Code Online (Sandbox Code Playgroud)
但这不起作用(法郎*):
curl -XGET 'local_host:9200/botanic/specimens/_search?size=0' -d '{
"fields": [
"COUNTRYNAME"
],
"query": {
"query_string": {
"query": "COUNTRYNAME:Franc*"
}
},
"aggs": {
"general": {
"terms": {
"field": "COUNTRYNAME",
"size": …Run Code Online (Sandbox Code Playgroud) 我正在学习弹性搜索,并希望计算不同的值.到目前为止,我可以计算值,但不是很明显.
以下是示例数据:
curl http://localhost:9200/store/item/ -XPOST -d '{
"RestaurantId": 2,
"RestaurantName": "Restaurant Brian",
"DateTime": "2013-08-16T15:13:47.4833748+01:00"
}'
curl http://localhost:9200/store/item/ -XPOST -d '{
"RestaurantId": 1,
"RestaurantName": "Restaurant Cecil",
"DateTime": "2013-08-16T15:13:47.4833748+01:00"
}'
curl http://localhost:9200/store/item/ -XPOST -d '{
"RestaurantId": 1,
"RestaurantName": "Restaurant Cecil",
"DateTime": "2013-08-16T15:13:47.4833748+01:00"
}'
Run Code Online (Sandbox Code Playgroud)
到目前为止我尝试了什么:
curl -XPOST "http://localhost:9200/store/item/_search" -d '{
"size": 0,
"aggs": {
"item": {
"terms": {
"field": "RestaurantName"
}
}
}
}'
Run Code Online (Sandbox Code Playgroud)
输出:
{
"took": 0,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
},
"hits": {
"total": 3, …Run Code Online (Sandbox Code Playgroud) 是否可以使用Kibana(最好是闪亮的新版本4 beta)来执行应用程序端连接?
我知道ES/Kibana不是为了取代关系数据库而构建的,通常更好的做法是对数据进行非规范化.然而,在这个用例中,这不是最好的方法,因为索引大小正在爆炸并且性能正在下降:
我正在索引数十亿个包含网络流的会话信息的文档,如:source ip,source port,destination ip,destination port,timestamp.
现在我也想收集每个IP地址的其他信息,如地理位置,ASN,反向DNS等将此信息添加到每一个会话文件,使整个数据库不可收拾:现在有成千上万的文件具有相同的IP地址和冗余向所有这些文档添加相同的附加信息会导致巨大的膨胀和无响应的用户体验,即使在具有数百GB内存的集群上也是如此.
相反,我想创建一个单独的索引,其中只包含唯一的IP地址和我收集到的每个元数据的元数据.
问题是:我怎样才能使用kibana分析我的数据?对于查询返回的每个文档,kibana应该在ip-index中执行查找,并使用此信息"虚拟地丰富"每个ip地址.像添加虚拟字段的东西,所以结构看起来像这样(在运行中):
source ip,source port,source country,source asn,source fqdn
我知道这会以多次查询为代价.
当我用命令:运行elasticsearch 0.90.0时bin/elasticsearch -f,我收到此错误:
[2014-09-17 15:00:27,998][INFO ][node ] [Myers, Fred] {0.90.0}[8030]: initializing ...
[2014-09-17 15:00:28,005][INFO ][plugins ] [Myers, Fred] loaded [], sites []
[2014-09-17 15:00:30,508][INFO ][node ] [Myers, Fred] {0.90.0}[8030]: initialized
[2014-09-17 15:00:30,508][INFO ][node ] [Myers, Fred] {0.90.0}[8030]: starting ...
[2014-09-17 15:00:30,762][INFO ][transport ] [Myers, Fred] bound_address {inet[/0:0:0:0:0:0:0:0:9301]}, publish_address {inet[/192.168.0.108:9301]}
[2014-09-17 15:00:36,874][WARN ][discovery.zen ] [Myers, Fred] failed to connect to master [[Holly][nlr9o-yfSQ6MsTtYlTlqlw][inet[/192.168.1.6:9300]]], retrying...
org.elasticsearch.transport.ConnectTransportException: [Holly][inet[/192.168.1.6:9300]] connect_timeout[30s]
at org.elasticsearch.transport.netty.NettyTransport.connectToChannels(NettyTransport.java:671)
at org.elasticsearch.transport.netty.NettyTransport.connectToNode(NettyTransport.java:610)
at org.elasticsearch.transport.netty.NettyTransport.connectToNode(NettyTransport.java:580)
at org.elasticsearch.transport.TransportService.connectToNode(TransportService.java:127)
at org.elasticsearch.discovery.zen.ZenDiscovery.innterJoinCluster(ZenDiscovery.java:337)
at org.elasticsearch.discovery.zen.ZenDiscovery.access$500(ZenDiscovery.java:76)
at …Run Code Online (Sandbox Code Playgroud) 我正在使用一个弹性搜索的php库来索引和查找我的网站中的文档.这是创建索引的代码:
curl -XPUT 'http://localhost:9200/test/' -d '
{
"index": {
"numberOfShards": 1,
"numberOfReplicas": 1
}
}'
Run Code Online (Sandbox Code Playgroud)
然后我使用curl XPUT将文档添加到索引和XGET以查询索引.这种方法很有效,除了在返回结果时单个和多个查询词在索引中不匹配的事实.例如,当我搜索"讨论"时,不会返回"讨论"的匹配,反之亦然.为什么会这样?我认为默认情况下,弹性搜索会对此进行处理.有什么我们必须明确提及它匹配单数/复数形式?
我在Elasticsearch中使用multi_match进行查询:
{
"query": {
"multi_match": {
"query": "luk",
"fields": [
"xml_string.autocomplete",
"state"
]
}
},
"size": 10,
"fields": [
"xml_string",
"state"
]
}
Run Code Online (Sandbox Code Playgroud)
效果很好,结果返回预期值:
{
"took": 2,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
},
"hits": {
"total": 1,
"max_score": 0.41179964,
"hits": [
{
"_index": "documents",
"_type": "document",
"_id": "11",
"_score": 0.41179964,
"fields": {
"xml_string": "Lukas bla bla bla",
"state": "new"
}
}
]
}
}
Run Code Online (Sandbox Code Playgroud)
我搜索了很多,但我无法找出哪个字段与查询匹配(如果它是xml_string OR状态)
我将我的问题改为完整的卷曲娱乐脚本.这样可以更容易地重现问题(使用自定义分析器搜索失败).我正在使用最新的ES版本
curl -XDELETE "http://localhost:9200/test_shingling"
Run Code Online (Sandbox Code Playgroud)
curl -XPOST "http://localhost:9200/test_shingling/" -d '{
"settings": {
"index": {
"number_of_shards": 10,
"number_of_replicas": 1
},
"analysis": {
"analyzer": {
"ShingleAnalyzer": {
"tokenizer": "BreadcrumbPatternAnalyzer",
"filter": [
"standard",
"lowercase",
"filter_stemmer",
"filter_shingle"
]
}
},
"filter": {
"filter_shingle": {
"type": "shingle",
"max_shingle_size": 2,
"min_shingle_size": 2,
"output_unigrams": false
},
"filter_stemmer": {
"type": "porter_stem",
"language": "English"
}
},
"tokenizer": {
"BreadcrumbPatternAnalyzer": {
"type": "pattern",
"pattern": " |\\$\\$\\$"
}
}
}
}
}'
Run Code Online (Sandbox Code Playgroud)
curl -XPOST "http://localhost:9200/test_shingling/item/_mapping" -d '{
"item": { …Run Code Online (Sandbox Code Playgroud) 我是Elasticsearch的新手.我很难使用该文档的字段_id.这是我的映射:
{
"product": {
"_id": {
"path": "id"
},
"properties": {
"id": {
"type": "long",
"index": "not_analyzed",
"store": "yes"
},
"title": {
"type": "string",
"analyzer": "snowball",
"store": "no",
"index": "not_analyzed"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是一个示例文档:
{
"id": 1,
"title": "All Quiet on the Western Front"
}
Run Code Online (Sandbox Code Playgroud)
索引此文档时,我得到的结果如下:
{
"_index": "myindex",
"_type": "book",
"_id": "PZQu4rocRy60hO2seUEziQ",
"_version": 1,
"created": true
}
Run Code Online (Sandbox Code Playgroud)
我做错了什么吗?这怎么办?
我正在使用交错网格布局。以下是代码:
StaggeredGridLayoutManager glm= new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL);
glm.setGapStrategy(StaggeredGridLayoutManager.GAP_HANDLING_NONE);
Run Code Online (Sandbox Code Playgroud)
我GAP_HANDLING_NONE用来避免图像从一列交换到另一列。
当我启动应用程序时,屏幕的开头是:
向下滚动到底部后,当我回到顶部时。随机以下三张图片显示布局(它不断变化)