문제

F#에서 전체 텍스트 검색 엔진을 구축하는 방법에 대한 좋은 예 (웹 사이트 또는 책)가 있습니까?

도움이 되었습니까?

해결책

이것을 직접 쓰고 싶습니까? 아니면 단순히 기능이 필요합니까?

기능이 필요한 경우 전체 텍스트 검색 지원이 포함 된 임베디드/메모리 데이터베이스가 트릭을 수행 할 수 있습니다. .NET이므로 추천합니다 sqlite ado.net 공급자 오픈 소스 경쟁자로서. 정말 좋습니다 (다른 제공 업체, 설계 시간 지원 등의 LINQ 지원) FTS 지원은 매우 활발한 개발 중입니다. Google이 작업하고 있다고 생각합니다. 도 있습니다 Vistadb 데이터베이스. 나는 지금 그것을 주로 사용하고 있습니다. FTS 지원이 있어야합니다. 전적으로 .NET으로, 통합 이점을 제공합니다.

당신이 그것을 직접해야한다면, 책을 체크 아웃하는 책 정보 검색. 나는 몇 가지를 읽었지만 군중에서 눈에 띄는 것은 없습니다. 아마존이 도움이 될 수 있습니다.

다른 팁

몇 줄의 코드 만 사용하여 F#에 검색 엔진을 작성했습니다. 내 포스터에서 그것에 대해 읽고 전체 구현에 액세스 할 수 있습니다.

Stefan Savev의 홈페이지

기본 아이디어는 아래 코드에 표시되지만 실제로 코드 자체보다 더 많은 설명이 필요합니다. 그것들은 내 웹 사이트에서도 구입할 수 있습니다.

이 코드는 문서 모음의 디스크에 인덱스를 만듭니다. 인덱싱은 외부 메모리에서 수행됩니다.

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