【发布时间】:2016-08-31 10:44:27
【问题描述】:
假设我有一个索引并且我向它添加了一个文档,通过以下语句:
POST /temp/item
{
"text": "dave@domain.com dave@do-main.com one,two three:four"
}
我想要一些查询语句来返回这个文档,例如:
*@domain**@do-*one,two-
three:four--> 这实际上产生了一个错误
每一个被一个类似这样的语句选中:
GET /temp/item/_search
{
"query": {
"bool": {
"must": [
{
"query_string": {
"query": "*@domain*",
"allow_leading_wildcard": "true",
"default_operator": "AND"
}
}
]
}
}
}
他们都没有返回。
我理解原因是分析器设置为standard,它按任何字边界分割文本。所以我想我必须将分析器更改为whitespace,如下所示:
PUT /temp
{
"mappings": {
"item" : {
"properties" : {
"text" : {
"type" : "string",
"analyzer": "whitespace"
}
}
}
}
}
这样做并没有解决问题。没有一条语句返回文档。
问题
- 如何配置索引或更改查询语句,以便捕获上述所有示例。
- 为什么我将分析器更改为“空白”后,Elasticsearch 没有返回文档?
【问题讨论】:
标签: elasticsearch elasticsearch-2.0