2017-11-07 1 views
0

내가있어 데이터 :루씬 와일드 카드 검색

CK/YZfB6XUmSOSM3IJqM2Q; Response code: 404. Elapsed: 0ms. Request: GET /marketing
4kk/TiKjYU2JY0L2N14QLg; Response code: 200. Elapsed: 10ms. Request: GET /api/monitor
vhXVsw4sBk69qv7dGE8JYw; Response code: 404. Elapsed: 0ms. Request: GET /graph-statistics 4kk/TiKjYW2JY0L2N14QLg; Response code: 200. Elapsed: 10ms. Request: GET /api/monitor

내가 쿼리하기 위해 노력하고있어/내가 단지 4XX 남아를 필터링 응답. (이 키바에 기록 된대로)

내가 wildcards에 대한 설명서를 읽었습니다, 그래서 나는 다음과 같은 쿼리 중 하나 이상이 일을 기대 :

message: "Response code: 4??" 
message: 4??. 
message: "Response code: 4*" 

이러한 JSON에서 보는 방법은 다음, 경우 (내가 간결 같은 JSON의 모든 3 개 쿼리를 열거 한) 문제를 탈출에 ...

"filter" : [], 
"query" : { 
"query_string" : { 
    "query" : "message: \"Response code: 4??\"", 
    "query" : "message: 4??.", 
    "query" : "message: \"Response code: 4*\"", 
    "analyze_wildcard" : true 
} 
}, 

지금까지 운이 했어 내가 아이디어의 부족 해요

답변

1

질문에 따라 메시지에 텍스트가 색인 된 것으로 보입니다. 4XX 응답 만 반환하도록하려면 아래 쿼리를 사용하십시오.

message: (Response AND code AND 4??) 

이 쿼리는 기본적으로 단어가 기록을 얻을 수 루씬을 요구하고있다응답, 코드하고있는 4XX. 귀하의 기록에 경과 시간의 일부로 400이 포함될 수있는 다음 경우에 대해 테스트했습니다.

......... 응답 코드 : 200 경과 : 404ms .......

그러나 쿼리가 잘 작동하고 404으로 결과를 반환하지 않습니다 접미사로 ms을가집니다. 따라서 검색 결과가 4와 (과) 일치하지 않습니다..

또한 컬렉션에서 필드 색인 방법을 확인해야 할 수 있습니다. 그것은 텍스트 또는 문자열로 저장되어 있습니까? 코드 예제에서 :을 lucene의 특수 문자로 이스케이프 처리하지 않았습니다.

참고 : 대신 새로운 추가 텍스트의 키워드가 존재하지만도 반드시

+0

이 쿼리가 (에 "AND"의) 문자열 _exactly_있는 메시지를 검색 할 것 같다 주어진 순서에서이 쿼리를 확인, AND 키워드를 통해 검색어를 ... –

+0

인용문을 제거하고 중괄호를 사용하도록 편집했습니다. lucene API 또는 Kibana UI를 통해 쿼리를 실행하고 있습니까? –

+0

이것은 내가 지금까지 가지고있는 가장 가까운 곳입니다! 남아있는 (약간) 문제는 메시지 앞에 앉아있는 Guid의 임의의 4xx에도 일치한다는 것입니다. 나는 키워드 현존 질서를 집행 할 수 없기 때문에 그런 것 같아? 이걸 갈 방법이 있니? –