일부 데이터는 탄성 검색으로 색인화됩니다.이 중 하나의 비트는 IP 주소 (IP 유형이 아닌 문자열 유형으로 저장 됨)입니다. 내가으로 정의 된 IP 주소 필드에 대한 사용자 지정 분석기를 사용하고있어 다음 다음과 같이탄성 검색 : 특정 필드에서 검색 할 때 분석하지 않음
'ipv4_address_analyzer' => [
'type' => 'custom',
'tokenizer' => 'ipv4_path_tokenizer',
'filter' => [],
],
ipv4_path_tokenizer가 정의 : 나는의 필드에 index_analyzer
속성을 사용
'ipv4_path_tokenizer' => [
'type' => 'path_hierarchy',
'delimiter' => '.',
'buffer_size' => 15,
],
매핑의 경우이 쿼리는 다음 쿼리를 사용하여 올바르게 인덱싱되고 검색됩니다.
{
"query": {
"query_string": {
"query": "95.129",
"fields": [
"external_ip",
"domains",
"_all"
],
"use_dis_max": true
}
},
"size": 1000
}
그러나 ... 기본 검색 항문 yser와 약간의 잘못된 긍정 일치가 생성됩니다.
다른 검색 분석기를 사용하기 위해 IP 필드에 search_analyzer 속성을 지정할 수 있지만 실제로 원하는 것은 분석기를 통과하지 않고이 필드를 검색 할 때 검색어를 그대로 두는 것입니다.
필드 별 기준으로 검색어 분석을 사용 중지하는 방법이 있습니까?
위양성 검사의 예를 들려 줄 수 있습니까? 검색어를 그대로두면 무슨 뜻인지 이해할 수 없습니다. 어쩌면 멀티 필드가 도움이 될까요? 또는 쿼리 문자열 대신 용어 필터에 IP를 넣는 방법은 무엇입니까? – kielni
감사합니다. @kielni. 검색어가 분석되고 '.'에 토큰 화 된 경우 12.34.56.78은 (다른 것들 사이에서) 12, 34, 56, 78로 토큰 화됩니다. 따라서 56 번, 56.78, 56.78.90 및 56.78.90.12와 같이 path_hierarchy에 의해 토큰 화되었으므로 IP 56.78.90.12와 일치합니다. 본질적으로, 나는 그 분야에서 검색 할 때 검색 용어를 분석하고 싶지 않다. –