2016-08-25 1 views
0

기본 Sitecore 8 설치에는 항목이 많은 버킷이 있습니다. 그리스어 언어의 RTE 필드에서 콘텐츠 검색 쿼리를 실행하면 Sitecore가 검색어를 악센트 방식으로 처리하는 것처럼 보입니다. 이는 그리스어로 잘못되었습니다.Sitecore lucene 그리스어 검색은 악센트를 구분합니까?

누가 그리스어에 대해 색인을 강조하지 않도록 올바른 방향을 가르쳐 줄 수 있습니까?

답변

0

이 문제가 Sitecore는 문화를 이해하고 문화의 실행 컨텍스트를 할당하는 방법을이었다 보인다는 검색 및 색인.

특정 솔루션의 경우 "el-GR"언어의 이름을 "el"(URL에 "멋지게"표시)로 변경했습니다. 차례 차례로, Sitecore는 "el-GR"가 아닌 "el"이라는 이름으로 CultureInfo를 지정했습니다. 그러나 defaultIndexConfiguration 설정 파일에서 GreekExecutionContext의 CultureInfo가 el-GR 일 때만 그리스 분석기가 할당되었으므로 데이터는 실제로 GreekAnalyzer가 아닌 StandardAnalyzer를 사용하여 인덱싱되므로 악센트 구분이됩니다.

CultureInfo의 이름이 "el"인 경우 (실제로 "el-GR"구성 노드를 복사 한 경우)를 다루기 위해 추가 구성을 추가했으며 필요한 인덱스를 다시 작성한 후에 모든 사항이 정상이었습니다.

그것은 ...

0

분석기를 변경하고 싶습니다. 두 좋은 옵션까지를 분석하는 방법으로,이 경우에 마음에 와서 :

  • 을 사용 org.apache.lucene.analysis.el.GreekAnalyzer. 이것은 당신이 요구하는 것을 할뿐만 아니라 그리스어 형태의 형태소 분석을 추가합니다. 당신이 정말로 형태소 분석을 원하지 않는 한, 이것은 아마도 최선의 선택입니다.

  • 표준 소문자 필터 대신 GreekLowerCaseFilter을 사용하는 사용자 지정 분석기를 만듭니다. 이 필터는 발음 구별 부호 등을 제거합니다, 그래서 당신이 찾고있는 무엇을 할 것인가 생각 :

    public class StandardWithGreekLower extends StopwordAnalyzerBase{ 
        public StandardWithGreekLower() { 
        } 
    
        @Override 
        protected TokenStreamComponents createComponents(final String fieldName) { 
         StandardTokenizer src = new StandardTokenizer(); 
         TokenStream filter = new StandardFilter(src); 
         filter = new GreekLowerCaseFilter(filter); 
         //If you want to add a stop filter, this would be a good place for it 
         return new TokenStreamComponents(src, filter); 
        } 
    } 
    
+0

아 Sitecore 가서 CultureInfo를 개체의 이름을 변경하는 이유하지만 오히려 불분명, 나는 이것이 lucene.NET 질문입니다 그것을 명확하게해야합니다. 또한, "default Sitecore 8 installation"이 수행하는 것과 같이 실제로 그리스 분석기를 사용하고 있는지 확인할 수 있습니다 - 문화가 그리스어로 식별 될 때 그리스 분석기를 지정합니다. – Yiangos

관련 문제