Пример полнотекстового поиска в F #? - PullRequest
3 голосов
/ 25 сентября 2008

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

Ответы [ 2 ]

1 голос
/ 12 августа 2009

Я написал поисковую систему на 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
1 голос
/ 25 сентября 2008

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

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

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

...