2014-06-18 2 views
0
  • 문서 1 대 정확히 일치 : 제품 _ : 위젯, 모델 _ : ABC123
  • 문서 2 : 제품 _ : 위젯, 모델 _ : def456
  • 문서 3 : 제품 _ : 위젯, 모델 _ : ghi789

edismax를 사용 중이며 사용자가 모델 번호를 입력하고 위젯 abc12x을 검색 상자에 입력했다고 가정합니다. 문서 1에 대해 3 개의 문서가 모두 일치하지만 model_number에는 일치하지 않습니다.SOLR의 edismax - 퍼지

이 상황을 처리하여 모델 _ 번호가 정확히 일치하지 않음을 사용자에게 알릴 수있는 가장 좋은 방법은 무엇입니까? Doc 1은 아마 그들이 찾고 있던 것일까? 퍼지 검색 (abc12x ~)은 분명히이 문제를 우아하게 처리 할 것입니다. 그러나 우리는 사전에 그것이 필요하다는 것을 모릅니다. 또한 검색 관련성, 성능 등을 해치는 결과를 초래할뿐입니다.

아마 Solr에게 기본적인 질문 일지 모르지만. 감사.

답변

0

색인이 더 커질 수 있지만 부분 일치를 얻으려면 N 그램을 사용하는 것이 좋습니다. 시나리오의 경우 edge N-gram이 작동합니다.

0

당신은 쿼리시에이 문제를 처리하기 위해 조건에 ​​문자 근접 수정을 추가 할 수 있습니다 :이 제공하는 검색 용어의 'edit distance' 내에서 인덱스의 용어를 찾을 수

q={!edismax}widget~3 abc12x~3 

. 이는 u 리 용어 'acb123'을 인덱스 용어 'abc123'과 일치시키는 이점이 있습니다. 문자 삽입 또는 삭제는 각각 하나의 편집이며, 두 문자를 스와핑하는 것은 두 번의 편집입니다.