使用脚本编写搜索查询时,我可以使用“ doc ['myfield']”访问字段
curl -XPOST 'http://localhost:9200/index1/type1/_search' -d '
{
"query": {
"filtered": {
"query": {
"match_all": {}
},
"filter": {
"script": {
"script": "doc[\"myfield\"].value>0",
"params": {},
"lang":"python"
}
}
}
}
}'
Run Code Online (Sandbox Code Playgroud)
如何访问_id或_parent字段?
“ ctx”对象似乎在搜索查询中不可用(虽然可以在更新API请求中访问它,为什么?)。
请注意,我使用的是python语言而不是mvel,但是它们两个都提出了相同的问题。
我的群集显示了很多io-wait(大约50%).
我做了很多索引和重建索引.
我想也许重新索引lucene是造成很多IO的原因.想到可能增加refresh_interval或者index.translog选项 - 这是正确的方法吗?
我的主要问题是我不知道如何找出我的设置.
在http://www.elasticsearch.org/guide/reference/api/admin-indices-update-settings/中列出了很多选项,当我使用时,这些选项都不可用:
curl -xget 'http://localhost:9200/my_index/_settings'
Run Code Online (Sandbox Code Playgroud)
如果使用默认值,它不会返回值(根据kimchy在这篇文章中的回答)
我只获得了明确设置的分片,副本的数量.elasticsearch.yml文件不会告诉默认值是什么.我怎么知道我的变化发生了,现在有什么价值?
非常感谢,因为我无法找到相关文档.
运行hot_threads,我得到:
> curl -XGET 'http://localhost:9200/_nodes/hot_threads?threads=5'
::: [Gardener][CR0qQbtBRyeU94hltnnE7A][inet[/10.154.148.151:9300]]{aws_availability_zone=us-east-1d}
50.6% (253.2ms out of 500ms) cpu usage by thread 'elasticsearch[Gardener][search][T#20]'
10/10 snapshots sharing following 8 elements
sun.misc.Unsafe.park(Native Method)
java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043)
java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1068)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
java.lang.Thread.run(Thread.java:722)
32.9% (164.5ms out of 500ms) cpu usage by thread 'elasticsearch[Gardener][search][T#12]'
10/10 snapshots sharing following 8 elements
sun.misc.Unsafe.park(Native Method)
java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043)
java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1068)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
java.lang.Thread.run(Thread.java:722)
29.1% (145.5ms out of 500ms) cpu …Run Code Online (Sandbox Code Playgroud) 有人可以向我解释 doc_values 是如何工作的吗?为什么这对我进行聚合时有帮助?
过滤时对我有帮助吗?
对于过滤,在我看来,ElasticSearch 将访问倒排索引以查找指向适合聚合的所有文档的“指针”,因此 doc_values(根据文档,它是一个“非倒排索引”)是无关紧要的吗?还是我错了?
有人可以解释一下启用 doc_values 时和未启用时聚合的流程,以及为什么启用它可以节省内存吗?
谢谢。
我想知道一个匿名函数有什么区别:
callback = function (a) {return a}
Run Code Online (Sandbox Code Playgroud)
并使用"=>"表示法?
callback = (a) => {return a}
Run Code Online (Sandbox Code Playgroud)
它不仅仅是语法糖吗?
我正在创建一个网络应用程序.虽然它工作得很好,但在轨道上的ruby中将"<%%>"标签内的整段代码编写起来非常难看.
我试图在我的controller.rb中定义一个函数,然后从html页面调用它.这不起作用,因为它无法识别该功能.
我很感激这里有任何帮助.我把功能放在了正确的位置吗?我需要使用"require"加载吗?
例如:
控制器文件:
class WelcomeController < ApplicationController
def index
end
def myfunc(x)
puts x
end
end
Run Code Online (Sandbox Code Playgroud)
HTML文件(index.html):
<h1>Welcome</h1>
<p>
<%= myfunc(5) %>
</p>
Run Code Online (Sandbox Code Playgroud) 正在寻找一种方法:
在将其保存到RoR数据库之前,更改新记录的其中一个字段(即强制它为小写).我试过了:
before_create do | term | term.myfield.downcase!结束
但这给出了一个错误:
undefined method `before_create' for RowsController:Class
Run Code Online (Sandbox Code Playgroud)
要么
尝试:
before_filter :check_lowcase, :only => [:new]
def check_lowcase
if (Term.new =~ /[^a-z]+/)
flash[:notice] = "Sorry, must use lowercase"
redirect_to terms_path
end
end
Run Code Online (Sandbox Code Playgroud)
这似乎只是被忽略了....
我用他的rails引擎来创建一个演示应用程序.一切正常,除了"Destroy"功能deos什么都不做.没有错误消息.
任何人都可以猜到为什么没有任何事情会发生,即使没有错误信息?
功能(自动创建)是:
def destroy
@term = Term.find(params[:id])
@term.destroy
respond_to do |format|
format.html { redirect_to terms_url }
format.json { head :ok }
end
end
Run Code Online (Sandbox Code Playgroud)
而HTMl部分是:
<td><%= link_to 'Destroy', term, confirm: 'Are you sure?', method: :delete %></td>
Run Code Online (Sandbox Code Playgroud)
我甚至没有收到确认问题.已选中,并启用了JavaScript.
我有一个程序,在当地时间(以色列)收到日期时间字符串,我需要将其转换为纪元秒.
我可以使用诸如"UTC +02:00"这样的格式,但问题是,白天节省,Israels手表的行为与其他国家不同.有没有办法让纪元时间依赖于国家?
我有一个字符串:
\xe2\x80\x8e\xd7\x93\xd7\x9c\xd7\x99\xd7\xaa\xe2\x80\x8e
Run Code Online (Sandbox Code Playgroud)
想要使用python将其改为unicode
我怎么做?
我有一个nx8维度的numpy数组,dtyp = boolean我想把它转换成一个numpy 1-d数组,其中每一行都被转换成一个字节,通过bin2dec
x = array([[ True, True, False, False, True, True, False, False],
[ False, False, False, False, True, True, False, False],
[ True, False, False, False, False, False, False, False]], dtype=bool)
Run Code Online (Sandbox Code Playgroud)
我希望输出为:
y = array([204 ,12, 128], dtype=uint8)
Run Code Online (Sandbox Code Playgroud)