색인에 "text"유형의 간단한 필드가 있습니다.ElasticSearch match score
"keywordName": {
"type": "text"
}
내가 이미 삽입이 문서가 "삼성", "삼성 은하", "삼성 커버", "삼성 충전기". 나는 간단한 "일치"쿼리를 한 경우
, 결과는 불안과 같습니다
검색어 :
GET keywords/_search
{
"query": {
"match": {
"keywordName": "samsung"
}
}
}
결과 :
{
"took": 7,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
},
"hits": {
"total": 4,
"max_score": 1.113083,
"hits": [
{
"_index": "keywords",
"_type": "keyword",
"_id": "samsung galaxy",
"_score": 1.113083,
"_source": {
"keywordName": "samsung galaxy"
}
},
{
"_index": "keywords",
"_type": "keyword",
"_id": "samsung charger",
"_score": 0.9433406,
"_source": {
"keywordName": "samsung charger"
}
},
{
"_index": "keywords",
"_type": "keyword",
"_id": "samsung",
"_score": 0.8405092,
"_source": {
"keywordName": "samsung"
}
},
{
"_index": "keywords",
"_type": "keyword",
"_id": "samsung cover",
"_score": 0.58279467,
"_source": {
"keywordName": "samsung cover"
}
}
]
}
}
첫 번째 질문 : "삼성은"하지 않은 이유 최고 점수?
두 번째 질문 : "samsung"이 가장 높은 점수를 얻는 쿼리 또는 분석기를 만들려면 어떻게해야합니까?
기본적으로 http://stackoverflow.com/questions/43257656/elasticsearch-analyzer-on-text-field와 같은 질문을하고 있습니다. 귀하의 첫 번째 질문에 대한 답변은 https://www.elastic.co/guide/en/elasticsearch/guide/current/scoring-theory.html입니다. 두 번째 질문에 대한 대답은 내가 이미 답장 한 다른 게시물입니다. –
질문은 동일하지만 다른 색인과 동일한 색인 및 분석기를 사용하고 "samsungs"를 검색하면 토큰이 "samsung"이므로 검색어가 작동하지 않고 일치 검색어가 "samsung"을 반환합니다 galaxy "... – Gun
그 이유는 인덱스에 대한 매핑과 이러한 요구 사항에 대한 쿼리 목록을 만들기 전에 모든 요구 사항을 정리하는 것이 중요하기 때문입니다. –