不确定在本地环境中工作时elasticsearch遇到这个奇怪的错误,任何帮助我都会很感激。谢谢
Elasticsearch::Transport::Transport::Errors::NotFound ([404] {"error":{"root_cause":[{"type":"index_not_found_exception","reason":"没有这样的索引","resource. type":"index_or_alias","resource.id":"invoices","index":"invoices"}],"type":"index_not_found_exception","reason":"没有这样的索引","resource.type" :"index_or_alias","resource.id":"invoices","index":"invoices"},"status":404})
这是我想要使用elasticsearch-rails的查询.(该查询在Sense中工作).我的目标是返回所有具有名字以字母B开头的人的项目.我的第一个绊脚石是我无法弄清楚如何指定search_type应该设置为count.
GET _search?search_type=count
{
"query": {
"prefix": {
"person": "B"
}
},
"aggs" : {
"facets" : {
"terms" : {
"field" : "person",
"size" : 0,
"order" : { "_term" : "asc" }
}
}
}
}
Run Code Online (Sandbox Code Playgroud) 在我的数据库中,一个帖子可以有零 (0) 个或多个类别表示为一个数组。
当我进行查询时,要查看这些类别,传递一些值:
{
"query": {
"bool": {
"should": {
"terms": {
"categories": ["First", "Second", "And so on"]
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
它运作良好,我有我期待的记录。但是当我想包含这些帖子时问题就来了,其中类别是一个空数组 ([])。
我现在正在从旧版本的 ES (1.4.5) 升级到版本 6.3.2,并且这段代码是使用“missing”制作的,它已被弃用。
我试过更改映射添加著名的"null_value": "NULL",然后查询,但没有奏效。还尝试了 should 和 must_not 的组合,如升级“missing”的建议,但没有奏效。
我怎样才能做到这一点?这意味着如果我已经索引:
Post.new(id: 1, title: '1st', categories: [])
Post.new(id: 2, title: '2nd', categories: ['news', 'tv'])
Post.new(id: 3, title: '3rd', categories: ['tv', 'trending'])
Post.new(id: 4, title: '4th', categories: ['movies'])
Post.new(id: 5, title: '5th', categories: ['technology', 'music'])
Run Code Online (Sandbox Code Playgroud)
结果应返回帖子编号 1, 2 y 3 - 具有“新闻”、“电视”或空数组作为类别的帖子。
ruby-on-rails elasticsearch elasticsearch-rails elasticsearch-ruby
为什么我们使用搜索引擎solr,elastic search或任何其他搜索引擎,而不是active record像宝石一样ransack,meta_search.
我是搜索引擎选择的新手.
我知道索引行为和其他可用于搜索引擎.但想知道明智或大数据明智的搜索引擎有哪些帮助.
我正在创建一个购物网站,我很困惑,我该怎么办?
任何帮助对我来说都是非凡的