【发布时间】:2018-02-27 13:52:04
【问题描述】:
我有这个索引:
{
"mappings": {
"records" : {
"properties" : {
"suggest" : {
"type" : "completion",
"contexts": [
{
"name": "year",
"type": "category",
"path": "year"
}
]
}
}
}
}
}
我放了一些记录:
POST http://localhost:9200/example/records
{
"suggest": {
"input": "foo123" ,
"contexts": {
"year": "1999"
}
}
}
POST http://localhost:9200/example/records
{
"suggest": {
"input": "some123" ,
"contexts": {
"year": "1999"
}
}
}
POST http://localhost:9200/example/records
{
"suggest": {
"input": "thing123" ,
"contexts": {
"year": "2000"
}
}
}
现在我会做这个查询(类似sql):
SELECT * FROM example WHERE SUGGEST LIKE %123% AND YEAR=1999
如何在 Elastic Search 中进行操作?
我输入:
POST http://localhost:9200/example/records/_search?pretty
{
"query": {
"bool": {
"must": [
{ "wildcard" : { "suggest" : "*123*" } }
],
"filter":[
{ "term" : { "year" : "1999" } }
]
}
}
}
我已返回此响应,但结果为空白:
{
"took": 1,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"skipped": 0,
"failed": 0
},
"hits": {
"total": 0,
"max_score": null,
"hits": []
}
}
我希望返回这些记录:
- foo123,1999 年
- some123,1999 年
我该怎么办?
【问题讨论】:
标签: regex elasticsearch elasticsearch-query