Lucene에서 비슷한 문서를 기록하고 싶습니다. 내 시나리오를 설명해 드리겠습니다.Lucene에서 비슷한 문서를 얻는 방법?
예를 들어 색인을 작성한 파일에 다음 레코드가 있다고 가정 해 보겠습니다. 내가 "홍길동"
를 검색 할 때
ID|First Name|Last Name|DOB 1 |John |Doe |03/18/1990 1 |John |Twain |03/18/1990 3 |Joey |Johnson |05/14/1978 3 |Joey |Johnson |05/14/1987 4 |Joey |Johnson |05/14/1987
난 당신이 Lucene을 볼 수있는 다음과 같은 순서로
ID|First Name|Last Name|DOB 1 |John |Doe |03/18/1990 3 |Joey |Johnson |05/14/1978 3 |Joey |Johnson |05/14/1987 4 |Joey |Johnson |05/14/1987 1 |John |Twain |03/18/1990 2 |Daniel |Doe |03/25/1989
레코드를 표시합니다 생성 된 검색 색인에 따라 표시하는 기록이다 검색 한 용어지만 레코드 사이의 유사성에 따르지 않는 용어. 제공된 용어로 레코드를 검색하고 유사성을 기준으로 표시하도록합니다.
나는 그들이 모두 유사하기 때문에 기록 존 트웨인과 신원 미상가 함께 표시되며 그 중 하나가 최대가 사용자의 쿼리와 일치했다 여기
ID|First Name|Last Name|DOB 1 |John |Doe |03/18/1990 1 |John |Twain |03/18/1990 3 |Joey |Johnson |05/14/1978 3 |Joey |Johnson |05/14/1987 4 |Joey |Johnson |05/14/1987 2 |Daniel |Doe |03/25/1989
원하는 것은.
나를 태워 주시겠습니까?
검색 코드.
String sa=textbox1.Text; // Assume this value to be John Doe in this case.
String[] searchfield= new string[] { "ID", "First Name", "Last Name","DOB"};
IndexReader reader = IndexReader.Open(dir, true);
TopScoreDocCollector coll = TopScoreDocCollector.Create(50, true);
indexSearcher.Search(QueryMaker(sa, searchfield), coll);
ScoreDoc[] hits = coll.TopDocs().ScoreDocs;
for (int i = 0; i < hits.Length; i++)
{
SearchResults result = new SearchResults();
int docID = hits[i].Doc;
Document d = indexSearcher.Doc(docID);
result.fname=d.Get("First Name").ToString();
}
는 방법을 시도 : 오른쪽이나 심지어는 올바른 방법 만약 내가 그 일을하고 있다면 확실히 MoreLikeThis 클래스를 사용하려고하지만 한
. 또한, 두 개 이상의 docid에 Like 메서드를 어떻게 사용합니까?
IndexSearcher mltsearcher = new IndexSearcher(reader);
MoreLikeThis mlt = new MoreLikeThis(reader);
int docid =hits[1].Doc;
Query query = mlt.Like(docid);
TopDocs similardocs = mltsearcher.Search(query, 10);
은 질문이 있으면 알려 주시기 바랍니다 다음 DOCID 년대를 사용하는 경우 나 같은 독자로부터
코드를 판독하고 있기 때문에 또한, 중복 문서를 표시합니다.
저는 지난 2 주 동안 Lucene을 배우려고 노력하고 있습니다. 많은 것을 모릅니다.
주
: 난 당신이 방법QueryMaker()
의 코드를 보여줄 수 Lucene.Net 3.0.3
'sa'와'searchfield'의 값은 무엇입니까? – femtoRgon
sa는 사용자가 입력 한 쿼리입니다. String sa = textbox1.Text 및 String String [] SearchField = 새 문자열 [] { "ID", "성", "성", "DOB"}; – Huzaifa