ELK新手,尝试使用正则表达式进行全文搜索,我创建了一个测试指标
{"test_monitoring":
{"aliases":{}
,"mappings":
{"messagerie":
{"properties":
{"header":
{"type":"text"
,"fields":
{"keyword":
{"type":"keyword","ignore_above":256
} } } } } }
,"settings":
{ "index":
{ "creation_date":"1490005518469","number_of_shards":"5","number_of_replicas":"1","uuid":"f8AsV6OrQEqx7_-HoEYxwA","version":
{ "created":"5020299"}
,"provided_name":"test_monitoring"
} } } }
所以属性“标题”是:
允许正常的全文搜索,而不仅仅是带分数的标记
将1条记录放入(get之后的数据)
hits|total | 1
|max_score | 1.0
|0|_index | "test_monitoring"
| |_type | "messagerie"
| |_id | "1"
| |_score | 1.0
| |_source|header | "La pomme d adan n est pas utile a la mastication"
我可以通过以下方式成功搜索:
"query": { "match": {
"header" : "pomme"
} }
或"header.keywork" : "La pomme d adan n est pas utile a la mastication"
但是从来没有一个超过1个单词的正则表达式[没有错误,完整的_shard,...](对于header.keyword是好的,但是标题是“not_analyzed”理解新的ELK版本New text/string/keyword behavior < / p>
GET /test_monitoring/messagerie/_search
{ "query": {
"regexp" :{
"header" : "la.*pom*e"
} } } }
我看到很多关于全文的问题,表明“not_analyzed”似乎是全文的关键所以我尝试添加这种类型的映射强制 not_analyzed 文本属性
PUT /test_monitoring/messagerie/_mapping
{
"messagerie": {
"properties": {
"header": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
, "as_text_na" : {
"type" : "text"
, "index" : "not_analyzed"
}
}
}
}
}
}
但是在这个指数上的这个新条目也失败了
根本问题是:
对属性 header 的全文regexp查询缺少什么,允许查询mulmti字数据值,其中word的顺序很重要?没有单词的顺序,布尔查询应该足够,但很重要但是有效。