我在我的环境中使用弹性5.1.1.我已经在字段名称上选择了完成建议器,其中post_hashtags包含一个字符串数组,以便对其进行建议.我收到如下前缀"inv"的响应
所需物品:
POST hashtag/_search?pretty&&filter_path=suggest.hash-suggest.options.text,suggest.hash-suggest.options._source
{"_source":["post_hashtags" ],
"suggest": {
"hash-suggest" : {
"prefix" : "inv",
"completion" : {
"field" : "post_hashtags"
}
}
}
Run Code Online (Sandbox Code Playgroud)
回应:
{
"suggest": {
"hash-suggest": [
{
"options": [
{
"text": "invalid",
"_source": {
"post_hashtags": [
"invalid"
]
}
},
{
"text": "invalid",
"_source": {
"post_hashtags": [
"invalid",
"coment_me",
"daya"
]
}
}
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
这里"invalid"被返回两次,因为它也是其他文档中相同字段"post_hashtags"的输入字符串.
问题是如果相同索引中的1000个文档中存在相同的"无效"输入字符串,那么我将得到1000个重复的建议,这是巨大的,不需要.
我可以在类型完成的字段上应用聚合吗?
有没有什么方法可以得到唯一的建议而不是重复的文本字段,即使我有相同的输入字符串给同一索引的多个文档中的特定字段?
今天我注意到C#中有一个有趣的排序行为.我有两个列表,我对它们进行排序:
var list1 = new List<string> { "A", "B", "C" };
var list2 = new List<string> { "AA", "BB", "CC" };
list1.Sort();
list2.Sort();
Run Code Online (Sandbox Code Playgroud)
这两个列表现在包含:
>> list1
[0]: "A"
[1]: "B"
[2]: "C"
>> list2
[0]: "BB"
[1]: "CC"
[2]: "AA"
Run Code Online (Sandbox Code Playgroud)
为什么AA放在最后?
这是一个演示:http://ideone.com/QCeUjx
在 Elasticsearch 中,我试图计算数据集中不同字段值的数量,其中字段值:
从某种意义上说,我试图计算重复发生的频率。我怎样才能做到这一点?
假设我有以下 Elasticsearch 文档:
{ "myfield": "bob" }
{ "myfield": "bob" }
{ "myfield": "alice" }
{ "myfield": "eve" }
{ "myfield": "mallory" }
Run Code Online (Sandbox Code Playgroud)
由于“alice”、“eve”和“mallory”出现一次,而“bob”出现两次,我预计:
number_of_values_that_appear_once: 3
number_of_values_that_appear_twice_or_more: 1
Run Code Online (Sandbox Code Playgroud)
我可以通过术语聚合并查看doc_count每个存储桶的部分方式。术语聚合的输出myfield如下所示:
"buckets": [
{
"key": "bob",
"doc_count": 3
},
{
"key": "alice",
"doc_count": 1
},
...
]
Run Code Online (Sandbox Code Playgroud)
doc_count == 1例如,从这个输出中,我可以对桶的数量进行求和。但这无法扩展,因为我经常有数千个不同的值,因此遗愿清单将是巨大的。
问题:
在 BigQuery、标准 SQL 中,如果我运行
SELECT *
FROM mytable
CROSS JOIN UNNEST(mytable.array)
Run Code Online (Sandbox Code Playgroud)
我可以确定生成的行顺序与数组顺序相同吗?
例子:
假设我有下表mytable:
Row | id | prediction
1 | abcd | [0.2, 0.5, 0.3]
Run Code Online (Sandbox Code Playgroud)
如果我运行SELECT * FROM mytable CROSS JOIN UNNEST(mytable.prediction),我可以确定行顺序与数组顺序相同吗?即结果表将始终是:
Row | id | unnested_prediction
1 | abcd | 0.2
2 | abcd | 0.5
3 | abcd | 0.3
Run Code Online (Sandbox Code Playgroud)
有关用例的更多背景信息(argmax):
我试图找到每行中数组的最大值(argmax)的数组索引,即0.5上面数组中的第二个元素()。因此,我的目标输出是这样的:
Row | id | argmax
1 | abcd | 2
Run Code Online (Sandbox Code Playgroud)
使用按值排序的窗口函数CROSS JOIN和查找argmax 的窗口函数,我可以使用一些测试数据来实现此目的。您可以使用以下查询进行验证:DENSE_RANKpredictionROW_NUMBER …
我试图理解这一点:每次重新初始化时,旋转3D立方体的第一个Three.js示例旋转速度越来越快.
代码具有init设置场景的animate功能和启动动画循环的功能.如果我多次拨打init和animate,我希望立方体完全复位,而是立方体每次它重新初始化时旋转的速度越来越快.
这是一个JS小提琴,显示了我在说什么.我已将其设置为每两秒重新初始化一次:http: //jsfiddle.net/1hq2esLr/(在Firefox和Chrome中测试)
这是完整的代码:
var camera, scene, renderer,
geometry, material, mesh;
function init() {
scene = new THREE.Scene();
camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 1, 10000 );
camera.position.z = 1000;
geometry = new THREE.BoxGeometry( 200, 200, 200 );
material = new THREE.MeshBasicMaterial( { color: 0xff0000, wireframe: true } );
mesh = new THREE.Mesh( geometry, material );
scene.add( mesh );
renderer = …Run Code Online (Sandbox Code Playgroud) .net ×1
.net-4.0 ×1
aggregation ×1
argmax ×1
arrays ×1
c# ×1
cross-join ×1
distinct ×1
javascript ×1
lucene ×1
sorting ×1
three.js ×1