토큰을 특수 문자로 분리하고 색인을 생성하기 전에 대문자로 변환하는 사용자 지정 분석기를 작성하려고합니다. 검색 할 때 결과를 가져올 수 있어야합니다. 또한 소문자 ..특수 문자 및 소문자/대문자로 토큰을 구분하는 사용자 정의 분석기
I 데이터 @ 소스를 제공하고있는 경우 - 예를 들어,이 공백을 @ 교체해야합니다 - 특수 문자가 공백으로 대체 나 데이터 소스와 같은 결과를 제공해야합니다. 여기
내가 구현하려고하는 방법이다.
PUT sound
{
"settings": {
"analysis": {
"analyzer": {
"my_analyzer": {
"tokenizer": "standard",
"char_filter": [
"my_char_filter"
],
"filter": [
"uppercase"
]
}
},
"char_filter": {
"my_char_filter": {
"type": "pattern_replace",
"pattern": "(\\d+)-(?=\\d)",
"replacement": "$1 "
}
}
}
}
}
POST sound/_analyze
{
"analyzer": "my_analyzer",
"text": "data-source&abc"
}
그것은처럼 잘 토큰을 분할 -
{
"tokens": [
{
"token": "DATA",
"start_offset": 0,
"end_offset": 4,
"type": "<ALPHANUM>",
"position": 0
},
{
"token": "SOURCE",
"start_offset": 5,
"end_offset": 11,
"type": "<ALPHANUM>",
"position": 1
},
{
"token": "ABC",
"start_offset": 12,
"end_offset": 15,
"type": "<ALPHANUM>",
"position": 2
}
]
}
하지만이에 소문자 또는 대문자로 검색 할 경우, 그것은 같은 .. 작동하지 않습니다 :
GET sound/_search?text="data"
GET sound/_search?text="data"
GET /sound/_search
{
"query": {
"match": {
"text": "data"
}
}
}
그것을 나는 위의 쿼리처럼 검색하면 .. 나에게
에이 대답을 참조하십시오. http://stackoverflow.com/a/ 39662994/4604579 – Val