关于一些基本查询的弹性搜索教程:
#Create the index with no mapping
curl -XPUT 127.0.0.1:9200/startswith/
#add some data
curl -XPOST 127.0.0.1:9200/startswith/test/ -d '{"title":"river dog"}'
curl -XPOST 127.0.0.1:9200/startswith/test/ -d '{"title":"data"}'
curl -XPOST 127.0.0.1:9200/startswith/test/ -d '{"title":"drive"}'
curl -XPOST 127.0.0.1:9200/startswith/test/ -d '{"title":"dzone"}'
#try to perform a "starts-with" style query...
curl -XGET 127.0.0.1:9200/startswith/test/_search?pretty -d '{
"query": {
"match_phrase_prefix": {
"title": {
"query": "d",
"max_expansions": 5
}
}
}
}' | grep title
但是我收到了消息no matches found: 127.0.0.1:9200/startswith/test/_search?pretty
。如果我访问http://127.0.0.1:9200/startswith/test/_search
或卷曲它,结果就在那里。我错过了什么?
答案 0 :(得分:3)
这是一个shell问题。
zsh
使用?
进行外卡匹配,因此您必须引用它以在文字字符串中使用。
例如;
> echo ?
zsh: no matches found: ?
> echo 127.0.0.1:9200/startswith/test/_search?pretty
zsh: no matches found: 127.0.0.1:9200/startswith/test/_search?pretty
要在zsh
中修复它,请引用字符串;
> echo "127.0.0.1:9200/startswith/test/_search?pretty"
127.0.0.1:9200/startswith/test/_search?pretty
...或用反斜杠转义问号;
> echo 127.0.0.1:9200/startswith/test/_search\?pretty
127.0.0.1:9200/startswith/test/_search?pretty
答案 1 :(得分:1)
我发现了这个问题 - 有点像:
curl -XGET 127.0.0.1:9200/startswith/test/_search?pretty -d '
什么有效:
curl -XGET '127.0.0.1:9200/startswith/test/_search?pretty' -d '
我需要网址引用。
$ curl -V
curl 7.35.0 (x86_64-apple-darwin13.1.0) libcurl/7.35.0 SecureTransport zlib/1.2.5
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp smtp smtps telnet tftp
Features: IPv6 Largefile NTLM NTLM_WB SSL libz
我在2个不同的模拟器中运行该命令。 URL周围需要引用,但我不确定原因。任何可以告诉我的人的奖励积分,因为它似乎不是标志所必需的。
我使用的是zsh
,而不是bash。
答案 2 :(得分:0)
在zsh上,将网址用引号引起来
curl -X PUT "http://localhost:9200/userindex1?pretty"