기본 형태소 분석기를 사용하면, 예를 들어, 줄기 할 토큰 무엇이든 자신을 호출 할 수 있습니다 lunr.stemmer
에서 함수로 사용할 수 있습니다
lunr.stemmer("stemming") //= "stem"
그러나 나는 당신이 또한 막아야 한 검색하는 문서의 토큰 때문에, 이것은 당신이 원하는 것을 달성하는 데 도움이됩니다 생각하지 않습니다이 형태소는 하나의 방법 작업입니다. 예를 들어, 위의 예에서 어떤 다른 단어가 "줄기"로 유래했는지 알 수 없으므로 강조 할 용어가 부족할 수 있습니다.
나중에 역 스템 찾아보기를 사용하면 출력에서 결과 검색 용어를보다 쉽게 찾을 수 있습니다. 이 색인에서 사용자 지정 파이프 라인 기능을 삽입함으로써 달성 될 수있다 : 이제 줄기에서 온 수있는 모든 토큰을 조회 한 다음 결과를 찾아 적절하게 강조 할 수
// going to store a hash of stemmed word to list of original words
var reverseStem = {}
var reverseStemIndexBuilder = function (token) {
var stemmed = lunr.stemmer(token)
if (stemmed in reverseStem) {
reverseStem[stemmed].push(token)
} else {
reverseStem[stemmed] = [token]
}
return stemmed
}
// idx is your instance of a lunr index
// we can remove the existing stemmer since reverseStemIndexBuilder already returns a stemmed token
idx.pipeline.remove(lunr.stemmer)
idx.pipeline.add(reverseStemIndexBuilder)
.