2012-03-12 1 views
1

Solr을 사용하여 필드에서 "n"개의 가장 빈번한 용어를 표시 할 계획이며 비슷한 용어가 그룹화되도록 형태소 분석을 적용하려고합니다 .Solr을 사용한 형태소 분석을 사용하여 사람이 읽을 수있는 가장 빈번한 색인어를 표시 함

이제 용어를 사용자에게 보여줘야하지만 줄기가있는 용어는 항상 사람이 읽을 수있는 것은 아닙니다. 사용자에게 표시 될 수 있도록 줄기가 붙은 원래 용어의 예를 얻을 수있는 방법이 있습니까?

우리가 생각할 수있는 유일한 해결책은 두 개의 다른 필드를 채우는 것입니다. 하나는 형태소 분석을 사용하고 하나는 제외하고 자체적으로 일치시킵니다. 그러나 우리는 이것이 비싸고 (두 개의 쿼리) 오류가 발생할 수 있다고 생각합니다 (일치하면 오류가 발생할 수 있음).

Solr에서 다른 방법으로 구현할 수 있습니까? 미리 감사드립니다.

답변

2

스테이밍은 쿼리 시간 색인 시간 모두에 적용되므로 수행하려는 작업을 수행하는 쉬운 방법은 없다고 생각합니다. 그러나 데이터베이스의 결과 수에 따라 패 시팅과 강조 표시를 결합하여이를 수행 할 수도 있습니다. 강조 표시된 용어는 줄기가 붙은 용어가 아닌 전체 일치 용어입니다 (예 : 줄기가 붙은 용어는 "연관"이지만 강조 표시된 용어는 "연관", "연관", "연관"등). 아마 당신이 할 수있는 것은 다음과 같다 :

?q=keyword&facet=true&facet.field=myfield&&facet.limit=20hl=true&hl.fl=myfield&hl.fragsize=0&rows=10 

10 개 행을 얻기 기본적으로 (강조 표시된 결과를 검토, 이러한 <em></em> 태그를 사용하여 강조하지만 hl.simple.prehl.simple.post을 사용하여 변경할 수 있습니다 - 예를 들어, &hl.simple.pre=[&hl.simple.post=]을 사용하면 일치하는 용어를 대괄호로 묶을 것입니다) 적어도 "원래"일치하는 용어의 샘플을 제공해야합니다. hl.fragsize=0은 강조 표시와 함께 전체 필드를 반환합니다.

희망이 도움이됩니다. 변수 강조 표시에 대한 자세한 내용은 여기를 참조하십시오. http://wiki.apache.org/solr/HighlightingParameters

+0

다시 한 번 감사의 말을 남겨주세요. 그런데 왜이 솔루션이 내 데이터베이스의 결과 수를 저하 시키는가? – rreyes1979

+0

일치하는 용어의 샘플을 얻을 수 있으며 반드시 일치하지는 않을 수도 있습니다. 강조 표시는 쿼리 관련 항목 (반환 된 행 수 포함) 만 반환합니다. 따라서 Solr 코어에 많은 레코드가 있다면이 방법을 사용하여 ** 모든 ** 일치하는 용어를 검색 할 수는 없습니다. 모든 행을 반환하려고 할 수는 있지만 표면 상 매우 단순한 작업에 대해서는 많은 양의 데이터가 필요합니다. 나는 내가 자신을 잘 설명하기를 바랍니다. –

+0

완벽합니다. 당신의 시간, 경험 및 좋은 뜻을 위해 대단히 감사합니다. – rreyes1979