AFAIK Lucene поддерживает поиск с расстоянием, означая это при использовании чего-то как:
field:stirng~0.5
(это s знак тильды)
будет соответствовать "строке". плавание состоит в том, насколько "терпимый" поиск был бы, где 1.0 точное совпадение, и 0.0 соответствие все (вид).
Различные синтаксические анализаторы однако реализуют это по-другому.
поиск с расстоянием А намного медленнее, чем нечеткий поиск (stri*), так используйте его с осторожностью. В Вашем случае можно было бы предположить, что, если Вы не находите соответствий на регулярном поиске, Вы пробуете поиск с расстоянием для наблюдения то, что Вы находите, и подарок "сделал Вы имеете в виду" на основе результата так или иначе.
Могло бы быть полезным для кэширования этого вида поисков для очень общих орфографических ошибок, по причинам производительности.
Когда бы я ни делал это, я просто
#include <windows.h>
начинал кодировать. MinGW поставляется с файлом windows.h
, поэтому вам не нужно ничего делать дополнительно.
Иногда я использую API Windows для приложений Qt, которые я создаю с помощью Qt Creator / MinGW - я просто #include
соответствующий заголовок Windows SDK (заголовки идут с MinGW), и он просто работает. Однако вам может потребоваться #define
несколько вещей, чтобы некоторые вызовы API были доступны. Например, мне недавно потребовалось вызвать SHGetSpecialFolderPath
(находится в shlobj.