我在使用elasticsearch消息的message元素中搜索部分搜索时遇到了困难。 我在下面复制了一条消息的摘录。现在我有以下内容并尝试了其他搜索“Process *” - 查询(termQuery,wildcardQuery,有一个明星,没有明星),但没有成功。 你能帮帮我吗
代码:
QueryBuilder qb = QueryBuilders.boolQuery()
.must(termQuery("environment", "dev"))
.must(termQuery("message", "ProcessOrder*"));
SearchResponse response = client.prepareSearch("logstash-2015.07.08")
.setSearchType(SearchType.DFS_QUERY_AND_FETCH)
.setQuery(qb)
.execute()
.actionGet();
ES _source:
{
"@timestamp": "2015-07-08T09:59:34.699Z",
"@version": "1",
"environment": "dev",
"file": "/#####/server.log",
"host": "#######",
"instance": "####",
"message": "10:59:32,566 DEBUG ExternalOrderMessage=<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<ns2:ProcessOrderFulfilmentMessage>#####\n</ns2:ProcessOrderFulfilmentMessage>\n",
"offset": [],
"tags": ["multiline"],
"type": "jboss"
}
答案 0 :(得分:1)
如果您有兴趣使用通配符进行搜索,建议您将术语查询更改为query string查询。
{
"query": {
"query_string": {
"default_field": "message",
"query": "processorde*"
}
}
}