Функция “Did you mean?” в Lucene.net

Я нашел другой способ, который работает, или дополнительный шаг к некоторым из ответов здесь, особенно если вы хотите изменить домен. Работает в android studio 1.4. Это то, что я сделал:

  1. Откройте Manifest.xml и измените имя пакета на то, что вы хотите.
  2. откройте файл build.gradle приложения и измените идентификатор приложения в defaultConfig с тем же именем, что и в манифесте, и перестроить проект.
  3. , если все еще проблема, откройте файл под именем пакета, перейдите в пакет патчи (т.е. объявление пакета в главном файле) и установите курсор в домен, который вы хотите изменить, и нажмите «Shift + F6», он выйдет с диалогом с предупреждениями о множественном использовании, нажмите «Переименовать пакеты», а затем нажмите «Do Refactor», он должен переименовать все, включая R.Java файлы.

, например, если вы хотите переименовать «com.example.app» в «com.YourDomain.app», откройте файл под пакетом, который нужно переименовать, в пакете панибрами, установите курсор на «примерную» часть домена и нажмите «Shift + F6» и переименуйте пакет в «YourDomain».

Надеюсь, что это поможет:)

28
задан Judah Gabriel Himango 8 December 2008 в 00:48
поделиться

4 ответа

Необходимо изучить модуль 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);
35
ответ дан sP_ 14 October 2019 в 11:23
поделиться

AFAIK Lucene поддерживает поиск с расстоянием, означая это при использовании чего-то как:

field:stirng~0.5

(это s знак тильды)

будет соответствовать "строке". плавание состоит в том, насколько "терпимый" поиск был бы, где 1.0 точное совпадение, и 0.0 соответствие все (вид).

Различные синтаксические анализаторы однако реализуют это по-другому.

поиск с расстоянием А намного медленнее, чем нечеткий поиск (stri*), так используйте его с осторожностью. В Вашем случае можно было бы предположить, что, если Вы не находите соответствий на регулярном поиске, Вы пробуете поиск с расстоянием для наблюдения то, что Вы находите, и подарок "сделал Вы имеете в виду" на основе результата так или иначе.

Могло бы быть полезным для кэширования этого вида поисков для очень общих орфографических ошибок, по причинам производительности.

6
ответ дан jishi 14 October 2019 в 11:23
поделиться

Google "Вы имели в виду?" (вероятно; они скрытны, конечно), реализованный путем консалтинга с их журналом запросов. Надейтесь видеть, если люди, которые искали запрос, который Вы обрабатываете, искал что-то очень похожее вскоре после; если так, это указывает, что они сделали ошибку и поняли то, что они должны искать.

, Так как у Вас, вероятно, нет огромного журнала запросов, Вы могли приблизить его. Возьмите запрос, разделите условия, посмотрите, существуют ли какие-либо подобные условия в базе данных (расстоянием редактирования, безотносительно); замените свои условия теми соседними условиями и повторно выполните запрос. Если Вы получаете больше хитов, который был, вероятно, лучшим запросом. Предложите это пользователю. (И так как Вы уже получили хиты, и большинство людей только смотрит на главные 2 результата, показывает им их.)

1
ответ дан Jay Kominek 14 October 2019 в 11:23
поделиться

Смотрите на проект кода Google, названный semanticvectors. Существует достойный объем обсуждения списков рассылки Lucene для того, чтобы сделать функциональность как то, что Вы после используете его - однако это записано в Java.

Необходимо будет, вероятно, проанализировать и использовать некоторые алгоритмы машинного обучения на поисковых журналах для создания функции как это!

0
ответ дан Max 28 November 2019 в 03:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: