2017-12-01 3 views
0

저는 Java/Lucene의 초보자입니다. Lucene 사전에서 가장 많이 사용 된 단어로 처음 20 단어를 정렬하려고합니다.Lucene Dictionary의 추천 단어 정렬

AnalyzingSuggester suggester = new AnalyzingSuggester(dir, "sugest", new StandardAnalyzer(CharArraySet.EMPTY_SET)); 
suggester.build(new LuceneDictionary(indexReader, "tokens")); 
List<LookupResult> lookupResults = suggester.lookup("a", false, 20); 

하지만이 알파벳 순서로 정렬됩니다 :

이 코드

은 문자 "A"필드에서 "토큰을"시작하는 20 자 내가 먼저 반환합니다. 나는 이것을 가장 많이 사용 된 단어 (또는 누가 복음에서 "최상위 용어"라고 부름)로 분류하고 싶다. SortSortField에 대해 뭔가를 발견했지만,이 제안 시나리오에서 어떻게 사용하는지 모르겠습니다. 이 작업을위한 쉬운 해결책이 있습니까? 아니면 특정 단어의 빈도를 알아야 할 필요가있는 자체 기능을 작성해야합니까?

답변

1

은이 같은 대신, HighFrequencyDictionary를 사용해보십시오 :

AnalyzingSuggester suggester = new AnalyzingSuggester(dir, "sugest", new StandardAnalyzer(CharArraySet.EMPTY_SET)); 
suggester.build(new HighFrequencyDictionary(indexReader, "tokens", 0)); 
List<LookupResult> lookupResults = suggester.lookup("a", false, 20); 
+0

와우, 가장 쉬운 방법은 다음 내가 기대, 덕분에 많이 :) – Pivoman