2017-03-13 7 views
3

작은 로컬 검색 엔진을 구현하기 위해 Whoosh를 사용하고 있습니다. 문서에는 프랑스어와 영어가 모두 포함되어 있습니다.Whoosh는 악센트가있는 단어를 검색하지 않습니다.

아시다시피 악센트 (à ...)는 프랑스어로 자주 사용됩니다.

accent_analyzer = RegexAnalyzer(r'\w+') | LowercaseFilter() \ 
        | StopFilter() | CharsetFilter(accent_map) 

schema = Schema(path=ID(stored=True), content=TEXT(analyzer=accent_analyzer)) 

인덱싱 문서 (오류없이) 잘 작동 다음 Whoosh Documentation에 의해 제안 그래서 악센트 폴딩을 사용하여 그들과 거래를했다.

하지만 검색 할 때는 악센트가 포함 된 단어에 대한 검색 결과가 표시되지 않습니다.

예 : content = u'unité logique'

하자 문서 D는 :

  • logique를 사용하여 검색하면 문서를 맞았습니다.
  • unité을 사용하여 검색하는 것은 아닙니다.
  • unite을 사용하여 검색하는 것은 아닙니다.

그래서 나는 색인 작성자가 악센트가있는 단어를 무시하고 있기 때문에 검색어에 악센트가 들어 있는지 여부에 관계없이 이러한 단어에 대한 검색 결과가 표시되지 않는 것으로 추정됩니다.

달성하고자하는 것은 unitéunite이라는 두 단어를 사용하여 D 문서를 때리는 것입니다.

답변