小编Mol*_*daa的帖子

如何在ElasticSearch中使query_string搜索精确短语

我在Elasticsearch中放了2个文件:

curl -XPUT "http://localhost:9200/vehicles/vehicle/1" -d'
{
    "model": "Classe A"
}'

curl -XPUT "http://localhost:9200/vehicles/vehicle/2" -d'
{
    "model": "Classe B"
}'
Run Code Online (Sandbox Code Playgroud)

为什么此查询返回2个文档:

curl -XPOST "http://localhost:9200/vehicles/_search" -d'
{
  "query": {
    "query_string": {
      "query": "model:\"Classe A\""
    }
  }
}'
Run Code Online (Sandbox Code Playgroud)

而这一个,只有第二个文件:

curl -XPOST "http://localhost:9200/vehicles/_search" -d'
{
  "query": {
    "query_string": {
      "query": "model:\"Classe B\""
    }
  }
}'
Run Code Online (Sandbox Code Playgroud)

我希望弹性搜索匹配我传递给查询参数的确切短语,使用空格,我该怎么做?

elasticsearch

20
推荐指数
4
解决办法
2万
查看次数

是否可以在idris的函数定义中使用保护?

在haskell,人们可以写:

containsTen::Num a => Eq a => [a] -> Bool
containsTen (x : y : xs)
    | x + y == 10 = True
    | otherwise = False
Run Code Online (Sandbox Code Playgroud)

是否有可能在伊德里斯写一些相同的东西,而不用它ifThenElse(我的真实案例比上面的更复杂)?

syntax pattern-matching guard-clause idris

13
推荐指数
1
解决办法
1369
查看次数

如何在无形中你说证明是空类型(即假的)

我想编写一个以Nat为参数的函数,并且如果此nat不能被3整除,则返回此nat.

例如 :

def myFunction[N <: Nat](n :N)(implicit ev: /* what do I put here that say not divible by 3 ? */): N = n
Run Code Online (Sandbox Code Playgroud)

要做到这一点,我必须写一些说"N不能被_3整除"的东西,或者"Mod.Aux [N,_3,_0]是空类型"

我怎么能在无形的情况下做到这一点?

scala shapeless

8
推荐指数
1
解决办法
394
查看次数

双击HTML中的文本选择与浮动

随后的代码:

<span>Label1 Label2</span>
<span style="float:left"><span>Value</span></span>
Run Code Online (Sandbox Code Playgroud)

双击"值"字时,选择Label2(高位)但不选择Label1.为什么会这样?

如果只选择"值"字而不选择"标签"字,我该怎么办?

实例:http://codepen.io/anon/pen/IHDzj

编辑:此错误仅存在于Chrome中

html html5

6
推荐指数
1
解决办法
3105
查看次数

javascript更高阶函数; "this"参数vs外部"self"变量

当在javascript(forEach,map,filter等)中使用Array API的高阶函数时,有两种方法可以传递"this"变量:

myArray.forEach(function(value) {
    this.aContextualFunction();
}, this);
Run Code Online (Sandbox Code Playgroud)

要么

var self = this;
myArray.forEach(function(value) {
    self.aContextualFunction();
});
Run Code Online (Sandbox Code Playgroud)

哪一个更好?优缺点都有什么 ?

示例:http://jsfiddle.net/TkZgX/

javascript

5
推荐指数
1
解决办法
456
查看次数

在Idris中,如何编写一个"vect生成器"函数,该函数在参数中采用索引函数

我试图在Idris中写一个函数,它通过传递Vect的大小和一个在参数中取索引的函数来创建一个Vect.到目前为止,我是这样的:

import Data.Fin
import Data.Vect

generate: (n:Nat) -> (Nat -> a) ->Vect n a
generate n f = generate' 0 n f where
  generate': (idx:Nat) -> (n:Nat) -> (Nat -> a) -> Vect n a
  generate' idx Z f = []
  generate' idx (S k) f = (f idx) :: generate' (idx + 1) k f
Run Code Online (Sandbox Code Playgroud)

但我想确保参数中传递的函数仅采用小于Vect大小的索引.我试过了:

generate: (n:Nat) -> (Fin n -> a) ->Vect n a
generate n f = generate' 0 n f where
  generate': (idx:Fin n) -> …
Run Code Online (Sandbox Code Playgroud)

dependent-type idris

5
推荐指数
1
解决办法
291
查看次数

如何映射Nat的无形HList

我有一个Nat的HList,我想要映射它

object NatToString extends Poly1 {
    implicit def caseNat = at[Nat](_.toString)
}

val list = _5 :: _3 :: HNil
list.map(NatToString) 
Run Code Online (Sandbox Code Playgroud)

此代码不编译并抛出:

找不到参数映射器的隐含值:
shapeless.ops.hlist.Mapper [Main.Nat_to_String.type,shapeless.:: [shapeless.Nat._5,shapeless.:: [shapeless.Nat._3,shapeless.HNil]] ]

但是,如果我用Int(或String,或List等)代替Nat做同样的事情,它就完美无缺.

我如何映射Nat的HList?

scala shapeless

4
推荐指数
1
解决办法
231
查看次数

如何在 idris 中对数据类型施加类型约束

在 idris 中,如何限制代数数据类型中的参数类型?

在haskell中,我会这样做:

data Foo = Bar {x :: Integer, str :: String}
Run Code Online (Sandbox Code Playgroud)

我可以在伊德里斯这样做吗?

idris

3
推荐指数
1
解决办法
637
查看次数

获取Spark 2.1.1中窗口的最后一个元素

我有一个数据框架,其中有子类别,并且想要每个这些子类别的最后一个元素。

val windowSpec = Window.partitionBy("name").orderBy("count")
sqlContext
    .createDataFrame(
      Seq[(String, Int)](
        ("A", 1),
        ("A", 2),
        ("A", 3),
        ("B", 10),
        ("B", 20),
        ("B", 30)
      ))
    .toDF("name", "count")
    .withColumn("firstCountOfName", first("count").over(windowSpec))
    .withColumn("lastCountOfName", last("count").over(windowSpec))
    .show()
Run Code Online (Sandbox Code Playgroud)

给我一些奇怪的东西:

+----+-----+----------------+---------------+                                   
|name|count|firstCountOfName|lastCountOfName|
+----+-----+----------------+---------------+
|   B|   10|              10|             10|
|   B|   20|              10|             20|
|   B|   30|              10|             30|
|   A|    1|               1|              1|
|   A|    2|               1|              2|
|   A|    3|               1|              3|
+----+-----+----------------+---------------+
Run Code Online (Sandbox Code Playgroud)

如我们所见,first返回的值是正确计算的,但last不是,它始终是列的当前值。

是否有人可以解决我想要的事情?

scala window-functions apache-spark apache-spark-sql

3
推荐指数
1
解决办法
2297
查看次数

在F#中,如何在不重新评估seq的情况下获取seq的头/尾

我正在读一个文件,我想用第一行做一些事情,还有其他所有其他行

let lines = System.IO.File.ReadLines "filename.txt" |> Seq.map (fun r -> r.Trim())

let head = Seq.head lines
let tail = Seq.tail lines
Run Code Online (Sandbox Code Playgroud)

```

问题:tail由于TextReader关闭,调用失败.这意味着Seq评估两次:一次得到head一次得到tail.

我怎样才能获得firstLine和lastLines,同时保持Seq和不重新评估Seq?

签名可以是,例如:

let fn: ('a -> Seq<'a> -> b) -> Seq<'a> -> b
Run Code Online (Sandbox Code Playgroud)

f#

3
推荐指数
2
解决办法
114
查看次数

如何在 RXJS 中实现带背压的轮询

我想要轮询一个响应速度可能很慢的 HTTP API,因此我不想同时多次调用此 API。

我想做的一个例子可能是:

const interval = Rx.Observable.interval(250).take(5); // Poll every 250ms

function simulateMaybeSlowHttpCall() {
  return interval.delay(500).take(1); // The service takes 500ms to answer
}

 interval
   .mergeMap(val =>simulateMaybeSlowHttpCall().map(x => val), 1) // max concurrent is 1
   .subscribe(val => console.log(val));
Run Code Online (Sandbox Code Playgroud)

此处,此代码将显示 1 2 3 4 5

但我不想打无用的电话。上面的代码运行 250*5 = 1250 毫秒,1 次调用需要 500 毫秒,所以我想显示:

1 3 5

所以我的问题是:当设置并发1(或任何其他值)时,如何丢弃所有未立即完成的调用?

JsFiddle: https: //jsfiddle.net/zra3zxhs/63/

javascript reactive-programming observable rxjs

2
推荐指数
1
解决办法
626
查看次数