여기 elasticSearch 내 필드 :ElasticSearch 분석기
"custom_stop": {
"type": "custom",
"tokenizer": "standard",
"filter": [
"my_stop",
"my_snow",
"asciifolding"
]
}
그리고 여기 내 필터입니다 :
여기"keywordName": {
"type": "text",
"analyzer": "custom_stop"
}
내 분석기 여기에
"my_stop": {
"type": "stop",
"stopwords": "_french_"
},
"my_snow" : {
"type" : "snowball",
"language" : "French"
}
이 내 내 유일한 위치 : keywordName의 색인 생성 :
"canne a peche", "canne a peche telescopique", "iphone 8", "iphone 8 case", "iphone 8 cover", "iphone 8 charger", "iphone 8 new"
나는 "칸느"를 검색 할 때, 그것은 내가 원하는 무엇을하는 나에게 "칸느"문서를 제공합니다 : 나는 "칸느 à PECHE"를 검색 할 때
GET ads/_search
{
"query": {
"match": {
"keywordName": {
"query": "canne",
"operator": "and"
}
}
},
"size": 1
}
, 그것은 "칸느 페쉬"저를 준다, 괜찮아. "Cannes à Pêche"-> "canne a peche"-> OK와 동일합니다.
여기 까다로운 부분이 있습니다. "iphone 8"을 검색하면 "iphone 8"대신 "iphone 8 cover"가 표시됩니다. 크기를 변경하면 5로 설정됩니다 ("iphone 8"이 포함 된 5 개의 결과를 반환 함). 나는 "iphone 8"이 점수의 기간에있는 제 4 결과다는 것을 봅니다.
{
"took": 5,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
},
"hits": {
"total": 5,
"max_score": 1.4009607,
"hits": [
{
"_index": "ads",
"_type": "keyword",
"_id": "iphone 8 cover",
"_score": 1.4009607,
"_source": {
"keywordName": "iphone 8 cover"
}
},
{
"_index": "ads",
"_type": "keyword",
"_id": "iphone 8 case",
"_score": 1.4009607,
"_source": {
"keywordName": "iphone 8 case"
}
},
{
"_index": "ads",
"_type": "keyword",
"_id": "iphone 8 new",
"_score": 0.70293105,
"_source": {
"keywordName": "iphone 8 new"
}
},
{
"_index": "ads",
"_type": "keyword",
"_id": "iphone 8",
"_score": 0.5804671,
"_source": {
"keywordName": "iphone 8"
}
},
{
"_index": "ads",
"_type": "keyword",
"_id": "iphone 8 charge",
"_score": 0.46705723,
"_source": {
"keywordName": "iphone 8 charge"
}
}
]
}
}
어떻게 : 첫 번째는 "아이폰 8 커버"다음 "아이폰 8의 경우"다음 "아이폰 8 새로운"그리고 마지막으로 "아이폰 8"... 여기
쿼리의 결과입니다 나는 키워드 "canne a peche"(악센트, 대문자, 복수형 용어)에 관한 유연성을 유지하면서 정확하게 일치하는 항목 ("iphone 8"= "iphone 8")이 있으면 정확히 keywordName을 알려주겠습니까?
이것은 내가 찾고 있었던 행동입니다! Thx – Gun
"가장 가까운 일치"결과를 높일 수 있습니까? 내 말은 -> "sâmsung"을 검색하면 1 개의 토큰이 있습니다 : "samsung". 그러나 가장 좋은 점수는 "삼성 갤럭시"(1.11), "삼성 충전기"(0.94) 및 "삼성"(0.84)입니다. 어떻게 "sAMM"을 "sâmsung"에 가장 근접하게 부스트라고 말할 수 있습니까? 그리고 "삼성 은하"또는 "삼성 충전기"가 아닙니다. – Gun