001
014
015 package com.liferay.portal.search.lucene;
016
017 import org.apache.lucene.search.spell.StringDistance;
018 import org.apache.lucene.search.spell.SuggestWord;
019
020
023 public class StringDistanceRelevancyChecker implements RelevancyChecker {
024
025 public StringDistanceRelevancyChecker(
026 String word, float scoresThreshold, StringDistance stringDistance) {
027
028 _word = word;
029 _scoresThreshold = scoresThreshold;
030 _stringDistance = stringDistance;
031 }
032
033 @Override
034 public boolean isRelevant(SuggestWord suggestWord) {
035 String word = suggestWord.string;
036
037 if (word.equals(_word)) {
038 return false;
039 }
040
041 suggestWord.score = _stringDistance.getDistance(
042 _word, suggestWord.string);
043
044 if (suggestWord.score <= _scoresThreshold) {
045 return false;
046 }
047
048 return true;
049 }
050
051 private float _scoresThreshold;
052 private StringDistance _stringDistance;
053 private String _word;
054
055 }