Вопрос

Есть ли хорошие примеры (веб-сайты или книги) того, как создать систему полнотекстового поиска на F#?

Это было полезно?

Решение

Вы хотите написать это сами?Или вам просто нужен функционал?

Если вам нужна эта функциональность, встроенная база данных или база данных в памяти с поддержкой полнотекстового поиска может помочь.Поскольку это .Net, я бы рекомендовал Поставщик SQLite ADO.Net как претендент с открытым исходным кодом.Это действительно хорошо (поддержка LINQ раньше, чем у любого другого поставщика, поддержка во время разработки и т. д.), а поддержка FTS находится в стадии очень активной разработки.Я думаю, Google работает над этим.А также есть База данных VistaDB.Я использую это в основном сейчас.Должна быть поддержка ФНС.Полностью .Net, что дает ему некоторые преимущества интеграции.

Если вам нужно сделать это самостоятельно, ознакомьтесь с книгами на Поиск информации.Я прочитал несколько, но не знаю ничего, что выделялось бы из толпы.Amazon может помочь в этом.

Другие советы

Я написал поисковую систему в F#, используя всего несколько строк кода.Вы можете прочитать об этом в моем плакате и получить доступ к полной реализации в

Домашняя страница Стефана Савева

Основная идея показана в коде ниже, но на самом деле требуется больше объяснений, чем сам код.Они также доступны на моем сайте.

Этот код создает индекс на диске коллекции документов.Индексация осуществляется во внешней памяти.

1.   let create_postings in_name tmp_dir out_name =
2.     let process_doc (doc_id, doc_text) = 
3.         doc_text |> tokenize |> stopword |> stem 
4a.        |> List.count
4b.        |> ListExt.map(fun (word, tf) -> (word, (doc_id, tf)) 
5.     in_name 
6.     |> as_lines
7.     |> Seq.map_concat extract_docs 
8.     |> Seq.map_concat process_doc
9a.    |> External.group_by (fun (w, _) -> w) 
9b.       (fun (_, docid_and_tf) -> docid_and_tf) 
9c.       (fun lst -> (List.length lst, lst)) 
9d.       tmp_dir
9e.       (External.ElemDesc())
10.    |> output out_name
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top