Показаны сообщения с ярлыком полнотекстовый поиск. Показать все сообщения
Показаны сообщения с ярлыком полнотекстовый поиск. Показать все сообщения

12 ноября 2019

SQL доступ к Elasticsearch


    Что делать, если вы хотите использовать SQL-запросы к Elasticsearch, но не купили X-Pack и у вас нет доступа к Elasticsearch SQL?

Вариант первый: смириться и продолжить писать REST-запросы

Вариант второй: использовать специальную библиотеку для SQL-доступа к Elasticsearch. Например, CData Elasticsearch Driver. Она существует в множестве вариантов и позволяет получить доступ к данным в Elasticsearch из любых средств разработки и программ (FireDAC Components, ADO.NET Provider, ODBC Driver, JDBC Driver, Power BI Connectors, BizTalk Adapter, PowerShell Cmdlets, Excel Add-In, Anypoint Connectors, SSIS Component).

Рассмотрим использование CData FireDAC Components for Elasticsearch в Delphi.

05 ноября 2019

Elasticsearch. Замена анализатора по умолчанию

    Зачастую при работе с Elasticsearch для полей необходимо указать не стандартный анализатор. Например, если нам нужен анализатор для конкретного языка или необходимо специфическая обработка текста (например, исключить определенные слова, задать список синонимов, или как я уже писал – приравнять Ё к Е...).

20 октября 2019

"ё"... "е"... какая мне разница? Программа должна найти!

 Буква "ё" совсем не важна... Завтра похолодает и мы все передохнем от жары...

    Иногда я завидую англоязычным программистам. Например, на клавиатуре им не надо переключать раскладку. А ещё у них нет буквы "Ё"! Буква "Ё" - это очень своенравная особа. Она обязательна только в собственных именах, а в остальных случаях употребление "Ё" или "Е" определяется выбором автора текста. Но при этом пользователя, который ищет по тексту, не заботит, что написал автор - "Ё" или "Е". А какая ему разница? Программа должна найти!

30 сентября 2019

Delphi & Elasticsearch. Загрузка и индексирование файлов

    В статье "Полнотекстовый поиск по содержимому файлов" я рассказывал, что нужно сделать для загрузки файла на индексацию в Elasticsearch. Теперь подробно рассмотрим реализацию этого процесса на Delphi с использованием стандартных классов HttpClient и NetEncoding.
    Думаю, что будет более понятно если я включу описание реализации в качестве комментариев в текст процедуры индексации файла.
uses
  System.Classes,
  System.SysUtils,
  System.StrUtils,
  System.Hash,
  System.NetEncoding,
  System.Net.HttpClient,
  System.Net.HttpClientComponent;

const
  csBaseUrl = 'http://localhost:9200/';
...

19 сентября 2019

Полнотекстовый поиск по содержимому файлов

    Многие программисты сталкиваются с тем, что их информационная система должна иметь полнотекстовый поиск. На помощь им приходят разработчики СУБД, которые предлагают свои решения. Встроенный механизм полнотекстового поиска есть у всех ведущих СУБД: Oracle, SQL Server, MySQL, PostgreSQL... Но не все они, как Oracle Text, умеют индексировать содержимое документов в форматах MS Office, PDF, XML, HTML... плюс к этому у многих есть проблемы с морфологией русского языка и производительностью.
    Единственным выходом является использование специальных поисковых систем. Наиболее распространенными являются системы построенные на базе библиотеки Lucene: Elasticsearch, Solr и Sphinx. Мой выбор пал на Elasticsearch.