vks*_*ghh 2 prefix elasticsearch
我已将以下链接中的'accounts.json'数据加载到我机器上的ES实例中:
https://www.elastic.co/guide/en/elasticsearch/reference/1.5/_exploring_your_data.html
这会将1000个文档添加到索引"bank"中,类型为"account".很简单!
每个doc都有这种结构:
{
"account_number": 0,
"balance": 16623,
"firstname": "Bradshaw",
"lastname": "Mckenzie",
"age": 29,
"gender": "F",
"address": "244 Columbus Place",
"employer": "Euron",
"email": "bradshawmckenzie@euron.com",
"city": "Hobucken",
"state": "CO"
}
Run Code Online (Sandbox Code Playgroud)
现在我试图在这个索引上运行一个简单的'前缀'查询.
这是一个很好的工作(回来时有很多正确的结果):
curl -XPOST 'localhost:9200/bank/_search?pretty' -d '
{
"query": { "prefix" : { "address" : "963" } }
}'
Run Code Online (Sandbox Code Playgroud)
这是另一个(这个不起作用):
curl -XPOST 'localhost:9200/bank/_search?pretty' -d '
{
"query": { "prefix" : { "firstname" : "Op" } }
}'
Run Code Online (Sandbox Code Playgroud)
但是肯定有一个记录存在,应该在之前的请求中返回.以下作品:
curl -XPOST 'localhost:9200/bank/_search?pretty' -d '
{
"query": { "match" : { "firstname" : "Opal" } }
}'
Run Code Online (Sandbox Code Playgroud)
我还验证了映射,并且在'firstname'和'address'这两个字段中似乎没有任何区别:
curl -XGET 'localhost:9200/bank/_mapping/account?pretty'
Run Code Online (Sandbox Code Playgroud)
以下是这些2的相关映射部分:
"address": {
"type": "string"
}
"firstname": {
"type": "string"
}
Run Code Online (Sandbox Code Playgroud)
无法弄清楚为什么一个前缀查询有效而另一个没有.关于我缺少什么的任何指示?
我想你会发现这会做你期望的事情:
curl -XPOST 'localhost:9200/bank/_search?pretty' -d '
{
"query": { "prefix" : { "firstname" : "op" } }
}'
Run Code Online (Sandbox Code Playgroud)
原因是,由于您未指定分析器,因此使用标准分析器,将标记转换为小写.
这是我用来测试我怀疑的一些代码:
http://sense.qbox.io/gist/a4f087cee78fd694dd4223eb56e842e1cd1d5847
| 归档时间: |
|
| 查看次数: |
2088 次 |
| 最近记录: |