2013-08-14 4 views
2

값이 "ice cubes"인 제목 필드 (텍스트 유형)가 있다고 가정합니다. 따라서 두 개의 토큰에 "ice"및 "cubes"로 색인이 생성됩니다. 이제 "icecubes"를 검색하면 "icecubes"가 토큰 "ice"또는 "cubes"와 일치하지 않으므로 결과가 없습니다.solr에 공백이있는 단어를 공백없이 검색

이와 반대의 경우도 가능합니다.이 상황을 어떻게 처리해야합니까? 이 문제를 해결할 수있는 기능이 있습니까?

+0

더 많은 입력이 필요합니다 - 정확히 "그 반대"가 무엇입니까? 당신의 solr 스키마는 어떻게 생겼습니까? –

답변

1

solr.WordDelimiterFilterFactory에는 catenateAll="1" 옵션을 사용할 수 있습니다. 이렇게하면 모든 하위 단어 부분이 연결됩니다. 예 :

"wi-fi-4000" => "wifi4000" 

그러면 문제가 해결됩니다.

동일한 필터에 대해 generateWordParts="1" (함께 splitOnCaseChange="1"splitOnNumerics="1") 옵션을 사용할 수 있습니다. 이렇게하면 단어의 일부가 생성됩니다. 예 :

"PowerShot" => "Power" "Shot" (if splitOnCaseChange=1) 
"Power-Shot" => "Power" "Shot" 

그러나 적어도 camelcase 이상인 단어가 필요하거나 Solr은 단어를 나눌 위치를 이해할 방법이 없습니다.

원본 작업을 그대로 토큰 화하려면 [preserveOriginal="1"]도 설정해야합니다.

+0

제목 필드에 다음 4 개의 값이 있다고 가정합니다. 1 => "아이스 큐브", 2 => "아이스 큐브", 3 => "재사용 가능한 다채로운 아이스 큐브", 4 => "다채로운 아이스 큐브". "icecubes"를 검색하면 1,2,4 개의 결과가 표시되지만 3이 아닌 이유는 무엇입니까? 나가 2 개의 resulst를 그 때 가져올 수있을 때 왜 아닙니다 3뿐만 아니라. –

+0

과 같은 특정 질문에 대해서는 필드 정의를 보내야합니다. 토큰이 어떻게 만들어 졌는지 알지 못합니다. 어쩌면 당신은이 대답을 받아 들일 수 있고 필드 정의를 포함하여 더 구체적인 질문을 열 수 있습니다. –

+0

필드 값 "다채로운 얼음 조각"의 경우 "화려한", "얼음", "큐브", ​​"화려한 큐브"가 인덱싱 된 것으로 생성됩니다. 본문. "colorfulice", "icecubes"를 색인 텍스트로 생성하는 것이 가능합니다. –

관련 문제