小编pau*_*kul的帖子

使用elasticsearch在数组对象类型中进行精确搜索

我正在寻找一种在弹性搜索中进行精确数组匹配的方法.让我们说这些是我的文件:

{"id": 1, "categories" : ["c", "d"]}
{"id": 2, "categories" : ["b", "c", "d"]}
{"id": 3, "categories" : ["c", "d", "e"]}
{"id": 4, "categories" : ["d"]}
{"id": 5, "categories" : ["c", "d"]}
Run Code Online (Sandbox Code Playgroud)

有没有办法搜索具有完全类别"c"和"d"(文档1和5)的所有文档,不多或少?

作为奖励:仍然可以搜索"其中一个"类别(例如,您可以搜索"c"并获得1,2,3和5)

有什么聪明的方法可以解决这个问题吗?

lucene elasticsearch

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

在可变函数中混合"爆炸"切​​片和常规参数

我想知道为什么不可能在go中执行以下操作:

func main() {
    stuff := []string{"baz", "bla"}
    foo("bar", stuff...)
}

func foo(s ...string) {
    fmt.Println(s)
}
Run Code Online (Sandbox Code Playgroud)

根据我的理解,切片......"爆炸"切​​片,以便它可以用于多参数函数调用.所以上面的例子实际上应该扩展到foo("bar", "baz", "bla").

foo(stuff...) 按预期工作,这里没有惊喜,但在上面的例子中,编译器抱怨过多的参数.

这是一个理想的限制吗?我来自一个foo("bar", *stuff)非常好的红宝石背景(并且,至少在我的书中,同样的事情),这就是为什么这让我感到惊讶.

go slice

11
推荐指数
3
解决办法
2569
查看次数

create_additions选项在JSON.parse中的作用是什么

create_additions在rubys JSON.parse docs中遇到了这个选项,但我似乎找不到任何关于它的文档.

rdoc描述了以下选项:

create_additions:如果设置为false,即使找到匹配的类和:: create_id,Parser也不会创建添加项.此选项默认为true.

出于好奇,任何人都可以解释这个选项实际上做了什么以及JSON.parse的这个"添加"功能是什么呢?

ruby json

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

为什么这个“hello world”golang http 示例在 osx 上变慢

我正在对我的小型 Web 应用程序进行基准测试,并注意到在几千个请求后运行 apache bench 时出现了一些显着的减速。

ab -n 20000 http://localhost:8080

最初的几千个请求很快,然后变得越来越慢。慢得多。虽然前一千个可能需要一秒钟,但请求 18000-20000 最多需要 10 秒。

所以我试图找到缓慢的部分,在某个时候没有任何东西可以排除,直到我最终对“hello world”风格的 http 服务器示例进行了基准测试。令我惊讶的是,同样的放缓发生了。

package main

import "net/http"

func main() {
    mux := http.NewServeMux()

    mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        w.WriteHeader(200)
    })
    http.ListenAndServe(":8080", mux)
}
Run Code Online (Sandbox Code Playgroud)

同样的小例子在 linux 机器上一直运行得很快。这并不是什么大事,因为我不打算在生产环境中在 osx 上运行该应用程序 ;) 但我很好奇是什么导致了 osx 的严重减速

linux macos performance benchmarking go

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

标签 统计

go ×2

benchmarking ×1

elasticsearch ×1

json ×1

linux ×1

lucene ×1

macos ×1

performance ×1

ruby ×1

slice ×1