0
알려진 제품의 데이터베이스와 제품 목록의 제목을 일치 시키려고합니다. 나의 첫 번째 아이디어는 알려진 제품과 메타 데이터를 elasticsearch에 넣고 multi_match와 가장 일치하는 제품을 찾으려고했다. 현재 쿼리는 다음과 같습니다.mult_match의 특정 필드를 정확히 일치시키는 방법
{
"query": {
"multi_match" : {
"query": "Men's small blue cotton pants SKU123",
"fields": ["sku^2","title","gender","color", "material","size"],
"type" : "cross_fields"
}
}
}
문제는 때때로 잘못된 색상의 제품을 반환합니다. 쿼리 문자열에있는 단어와 동일한 색상 필드를 가진 인덱스의 항목 만 채점하도록 위 쿼리를 수정할 수있는 방법이 있습니까? 나는 elasticsearch 5.1을 사용하고있다.
빠른 응답을 가져 주셔서 감사합니다. 일부 테스트 후에이 코드는 색상이 "파랑"과 같은 단 하나의 단어 일 때 작동하지만 위의 쿼리는 "연한 파란색"또는 "진한 파란색"과 같은 다중 단어 색상이있는 색인의 항목과도 일치하는 것처럼 보입니다. 색상 필드의 모든 단어가 키워드에 존재하는 항목 만 표면 처리 할 수 있습니까? (순서가 틀릴 수도 있고 인접하지 않을 수도 있음) – rdelbel
이것이 가능하다고 생각하지 않습니다. 모든 쿼리 토큰과 일치하는 쿼리를 가질 수 있지만 그 반대가 아닙니다. 더 중요하게도, 당신은 정말로 이것을 필요로합니까? 내 말은 내가 사용자라면 푸른 색을 요구할 때 밝은 파란색이 결과를 원할 것입니다. 유사한 질문이 http://stackoverflow.com/questions/32580295/elasticsearch-match-all-words-from-document-in-the-search-query 전에 질문되었습니다. 기본적으로이 쿼리를 사용하여 응용 프로그램 수준에서 원하는 작업을 수행 할 수 있습니다. – alkis
물론 평소와 다른 것을 만들기 위해 스크립팅을 사용할 수는 있지만주의 할 것을 권장합니다. 상당한 오버 헤드가 발생할 수 있습니다. – alkis