Lucene 30模糊搜索

时间:2014-03-26 13:37:07

标签: lucene lucene.net fuzzy-search

我为我的搜索引擎用户LUCENE_30,但我不能进行模糊搜索。我怎样才能使它工作? 我尝试使用GetFuzzyQuery但没有任何反应。我认为不支持。

这是我的代码:

if (searchQuery.Length < 3)
            {
                throw new ArgumentException("none");
            }
            FSDirectory dir = FSDirectory.Open(new DirectoryInfo(_indexFileLocation));

            var searcher = new IndexSearcher(dir, true);
            var analyzer = new RussianAnalyzer(Lucene.Net.Util.Version.LUCENE_29);

            var query = MultiFieldQueryParser.Parse(Lucene.Net.Util.Version.LUCENE_30, searchQuery, new[] {"Title" }, new[] { Occur.SHOULD }, analyzer);



            var hits = searcher.Search(query, 11110);
            var dto = new PerformSearchResultDto();
            dto.SearchResults = new List<SearchResult>();
            dto.Total = hits.TotalHits;

            for (int i = pagesize * page; i < hits.TotalHits && i < pagesize * page + pagesize; i++)
            {
                //  Document doc = hits.Doc(i);
                int docId = hits.ScoreDocs[i].Doc;
                var doc = searcher.Doc(docId);
                var result = new SearchResult();
                result.Title = doc.Get("Title");
                result.Type = doc.Get("Type");
                result.Href = doc.Get("Href");
                result.LastModified = doc.Get("LastModified");
                result.Site = doc.Get("Site");
                result.City = doc.Get("City");
                //result.Region = doc.Get("Region");
                result.Content = doc.Get("Content");
                result.NoIndex = Convert.ToBoolean(doc.Get("NoIndex"));
                dto.SearchResults.Add(result);
            }

1 个答案:

答案 0 :(得分:0)

当然支持模糊查询。请参阅FuzzyQuery课程。

查询解析器也supports fuzzy queries,只需附加一个波浪号:misspeled~