我有一个字段
author
Jason Pete
Jason Paul
Mike Yard
Jason Voorhies
在kibana 4.4我正在查询
author:/Jason.*/
所以我得到
的所有记录Jason Pete
Jason Paul
Jason Voorhies
很好,现在我想做
author:/Jason P.*/
我希望
Jason Pete
Jason Paul
但是我得到了
No Records found :(
我的正则表达式出了什么问题?还有另一种方法来指定杰森之后的空间角色吗?我甚至试过
author:/Jason\sP.*/
但仍然没有结果
答案 0 :(得分:2)
这是因为您的author
字段可能已经过分析,因此值Jason Pete
会被标记为两个标记jason
和pete
。因此,无法查询这两个值。
如果您想要更改该行为,我建议您使用author
子字段在not_analyzed
字段之外创建一个多字段,如下所示:
curl -XPUT localhost:9200/my_index/_mapping/my_type -d '{
"my_type": {
"properties": {
"author": {
"type": "string",
"fields": { <--- add this section to author your field
"raw": {
"type": "string",
"index": "not_analyzed"
}
}
}
}
}
}'
更新映射后(确保使用您拥有的索引和映射类型名称替换my_index
和my_type
),您需要重新索引数据,然后才能够查询Kibana中的author.raw
字段,如下所示:
author.raw:/Jason P.*/
答案 1 :(得分:0)
它对我有用:
author:/Jason\ P.*/
因此,反斜杠空格\s
适用于我的空间,ES1.7
和Kibana4.1.2
。