Легкая нечеткая библиотека поиска

Один простой способ - использовать это как main ():

<STAThread()> Public Shared Sub Main()

    splash = New frmSplash
    splash.Show()

    ' Your startup code goes here...

    UpdateSplashAndLogMessage("Startup part 1 done...")

    ' ... and more as needed...

    splash.Hide()
    Application.Run(myMainForm)
End Sub

Когда .NET CLR запускает ваше приложение, он создает «основной» поток и начинает выполнение вашего основного () по этой теме. Application.Run (myMainForm) в конце делает две вещи:

  1. Запускает «насос сообщений» Windows, используя поток, который выполнял main () как поток GUI.
  2. Обозначает вашу «основную форму» как «форму выключения» для приложения. Если пользователь закрывает эту форму, то завершение и управление Application.Run () возвращается к вашему main (), где вы можете сделать любое выключение.

Нет необходимости запускать нить, чтобы заботиться о всплывающем окне, и на самом деле это плохая идея, потому что тогда вам придется использовать поточно-безопасные методы для обновления содержимого всплеска из main ().

Если вам нужно другие темы для фоновых операций в вашем приложении, вы можете создать их из main (). Не забудьте установить Thread.IsBackground в значение True, чтобы они погибли, когда поток main / GUI завершился. В противном случае вам придется договориться о завершении всех ваших других потоков самостоятельно или они будут поддерживать ваше приложение в живых (но без графического интерфейса), когда основной поток завершается.

14
задан Zachary Yates 9 September 2010 в 14:58
поделиться

5 ответов

Soundex является 'очень английским' в, он кодирует - Daitch-Mokotoff работает лучше на многие имена, особенно европейские (германские) и еврейские имена. В моем британско-центральном мире это - то, что я использую.

Wiki здесь .

1
ответ дан ColinYounger 9 September 2010 в 14:58
поделиться
  • 1
    Как Вы добираетесь, Вы следуете из этих таблиц? При использовании ORM, необходимо быть в состоянии получить хорошие нормализованные деревья объектов. – Aron 19 April 2013 в 10:07

@aku - ссылки на работу soundex библиотеки тут же внизу страницы.

Что касается расстояния Левенштейна, статье Wikipedia о том также перечислили реализации в нижней части.

0
ответ дан ceejayoz 9 September 2010 в 14:58
поделиться
  • 1
    Это было просто примером. Я использовал это в качестве примера Linux' s корневой каталог. Это могло так же, как легко быть File.join('C:', 'Users', 'Charles', 'blahblah') или даже File.dirname(__FILE__), который добавит папку того, где Ваш текущий файл расположен к пути загрузки. dirname, вероятно, лучше, так как это позволит Вам переместить файл и все еще работать. – Charles Caldwell 31 May 2013 в 13:23

Lucene очень scalable— что означает его пользу для небольших приложений также. Можно создать индекс в памяти очень быстро, если это - все, в чем Вы нуждаетесь.

Для нечеткого поиска, действительно необходимо решить, какой алгоритм требуется использовать. С информационным поиском я использую n-грамма техника с Lucene успешно. Но это - специальный метод индексации, не "библиотека" сам по себе.

, не зная больше о Вашем приложении, не будет легко рекомендовать подходящую библиотеку. Сколько данных Вы ищете? Какой формат является данными? Как часто данные обновляются?

3
ответ дан erickson 9 September 2010 в 14:58
поделиться
  • 1
    Это - запрос результата, который я делаю от нескольких, представляют в виде таблицы и создают объект этот тип. – user2112420 19 April 2013 в 09:30

Если можно принять решение использовать базу данных, я рекомендую использовать PostgreSQL и нечеткие функции сопоставления строк .

, Если можно использовать Ruby, я предлагаю изучить amatch библиотека .

1
ответ дан marzagao 10 September 2010 в 01:58
поделиться
  • 1
    Что происходит, если Вы помещаете TrNo перед идентификатором в коде? – IronMan84 31 January 2013 в 14:22

Вы не указали вашу платформу разработки, но если ее PHP, то предлагаем вам взглянуть на ZEND Lucene lubrary :

http://ifacethoughts.net/2008/02/07/zend-brings-lucene-to-php/ http://framework.zend.com/manual/en/zend.search.lucene.html

Так как он LAMP намного легче Lucene на Java, и может быть легко расширен для других типов файлов, при условии, что вы можете найти библиотеку преобразования или преобразователь строк cmd - существует множество OSS-решений для этого.

.
1
ответ дан 1 December 2019 в 15:23
поделиться
Другие вопросы по тегам:

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