Lucene.Net MoreLikeThis 쿼리를 구현하려고하는데 문서에서 흥미로운 항목을 찾을 수없는 것 같습니다.Lucene.Net MoreLikeThis는 0 개의 흥미로운 용어와 쿼리에 절이 없음을 반환합니다.
내 시나리오에서 사용자가 검색 결과 웹 페이지에서 "이와 유사하게"링크를 클릭하면 쿼리 문자열에 문서 ID가 전달됩니다. 내 Lucene.Net 코드는 다음과 같습니다 :
var similarSearch = new MoreLikeThis(reader);
similarSearch.SetFieldNames(new[] { "Place", "Subject", "Description", "Name", "Town", "Occupation" });
similarSearch.MinWordLen = 3;
similarSearch.Boost = true;
var terms = similarSearch.RetrieveInterestingTerms(docid);
var doc = reader[docid];
var searchQuery = similarSearch.Like(docid);
실행 후; 변수라는 용어는 빈 배열이고 doc 변수는 문서를 포함하며 searchQuery에는 절이 없습니다. 쿼리를 사용하여 검색을 실행하면 문서가 반환되지 않습니다.
내 결론은 독자로부터 문서를 가져올 수 있지만 MoreLikeThis 개체는 쿼리를 작성하는 데 아무 것도 찾을 수 없습니다.
왜 그런가? - 어떤 결과가 반환되는 분석기, MinTermFreq 및/또는 I 같은 문제가 있었다 MinDocFreq
:
'search \ hits = searcher.Search (searchQuery);와 같이'searchQuery'를 사용하여 검색한다고 가정합니다. [이 샘플] (http://lucene.apache.org/core/3_0_3/api/contrib-queries/org/apache/lucene/search/similar/MoreLikeThis.html)을보십시오 – rae1
@ rae1n 그 다음입니다. 코드'var hits = searcher.Search (searchQuery, 15000);'줄에. 'hits.TotalHits' 실행은 0입니다. 그 이유는'searchQuery'에서 절이 부족하다는 가정하에 샘플에서 제외 시켰습니다. –
알 수 있습니다. 그 경우에 기회는 그 문서와 같은 것, 최소한 절단을 만들기에 충분하지 않은 것입니다 ... – rae1