代码之家  ›  专栏  ›  技术社区  ›  Michiel Borkent

F#中的全文搜索引擎示例?

  •  3
  • Michiel Borkent  · 技术社区  · 17 年前

    关于如何在F#中构建全文搜索引擎,有什么好的例子(网站或书籍)吗?

    2 回复  |  直到 17 年前
        1
  •  1
  •   kervin    17 年前

    你想自己写这个吗?或者你只是需要这个功能?

    SQLite ADO.Net Provider 作为开源竞争者。它真的很好(在任何其他提供商之前支持LINQ,设计时支持等),FTS支持正在非常积极的开发中。我认为谷歌正在努力。还有 VistaDB Database . 我现在主要用这个。它应该有FTS支持。Net,这给了它一些集成优势。

    如果你必须自己做的话,可以在网上借书 Information Retrieval . 我读过一些书,但不知道有什么能从人群中脱颖而出。亚马逊可能会在这方面有所帮助。

        2
  •  1
  •   Stefan Stefan    16 年前

    我用F#写了一个搜索引擎,只用了几行 代码的定义。你可以在我的海报上看到 并在中获得全面实施

    Stefan Savev's home page

    这段代码在磁盘上创建文档集合的索引。 索引是在外部内存中完成的。

    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