Я нашел другой способ, который работает, или дополнительный шаг к некоторым из ответов здесь, особенно если вы хотите изменить домен. Работает в android studio 1.4. Это то, что я сделал:
, например, если вы хотите переименовать «com.example.app» в «com.YourDomain.app», откройте файл под пакетом, который нужно переименовать, в пакете панибрами, установите курсор на «примерную» часть домена и нажмите «Shift + F6» и переименуйте пакет в «YourDomain».
Надеюсь, что это поможет:)
Необходимо изучить модуль SpellChecker в contrib dir. Это - порт lucene's Java модуль SpellChecker , таким образом, документация должна быть полезной.
(От javadocs:)
Использование В качестве примера:
import org.apache.lucene.search.spell.SpellChecker;
SpellChecker spellchecker = new SpellChecker(spellIndexDirectory);
// To index a field of a user index:
spellchecker.indexDictionary(new LuceneDictionary(my_lucene_reader, a_field));
// To index a file containing words:
spellchecker.indexDictionary(new PlainTextDictionary(new File("myfile.txt")));
String[] suggestions = spellchecker.suggestSimilar("misspelt", 5);
AFAIK Lucene поддерживает поиск с расстоянием, означая это при использовании чего-то как:
field:stirng~0.5
(это s знак тильды)
будет соответствовать "строке". плавание состоит в том, насколько "терпимый" поиск был бы, где 1.0 точное совпадение, и 0.0 соответствие все (вид).
Различные синтаксические анализаторы однако реализуют это по-другому.
поиск с расстоянием А намного медленнее, чем нечеткий поиск (stri*), так используйте его с осторожностью. В Вашем случае можно было бы предположить, что, если Вы не находите соответствий на регулярном поиске, Вы пробуете поиск с расстоянием для наблюдения то, что Вы находите, и подарок "сделал Вы имеете в виду" на основе результата так или иначе.
Могло бы быть полезным для кэширования этого вида поисков для очень общих орфографических ошибок, по причинам производительности.
Google "Вы имели в виду?" (вероятно; они скрытны, конечно), реализованный путем консалтинга с их журналом запросов. Надейтесь видеть, если люди, которые искали запрос, который Вы обрабатываете, искал что-то очень похожее вскоре после; если так, это указывает, что они сделали ошибку и поняли то, что они должны искать.
, Так как у Вас, вероятно, нет огромного журнала запросов, Вы могли приблизить его. Возьмите запрос, разделите условия, посмотрите, существуют ли какие-либо подобные условия в базе данных (расстоянием редактирования, безотносительно); замените свои условия теми соседними условиями и повторно выполните запрос. Если Вы получаете больше хитов, который был, вероятно, лучшим запросом. Предложите это пользователю. (И так как Вы уже получили хиты, и большинство людей только смотрит на главные 2 результата, показывает им их.)
Смотрите на проект кода Google, названный semanticvectors. Существует достойный объем обсуждения списков рассылки Lucene для того, чтобы сделать функциональность как то, что Вы после используете его - однако это записано в Java.
Необходимо будет, вероятно, проанализировать и использовать некоторые алгоритмы машинного обучения на поисковых журналах для создания функции как это!