Elasticsearch和在message元素中使用通配符

时间:2015-07-08 14:16:53

标签: elasticsearch

我在使用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"
}

1 个答案:

答案 0 :(得分:1)

如果您有兴趣使用通配符进行搜索,建议您将术语查询更改为query string查询。

{
    "query": {
        "query_string": {
           "default_field": "message",
           "query": "processorde*"
        }
    }
}