我得到了 Lucenes 解析器,它从表中返回了我的评论。它看起来像:
private static IEnumerable<Comment> _search(string searchQuery, string searchField = "")
{
using (var searcher = new IndexSearcher(_directory, false))
{
var analyzer = new StandardAnalyzer(Version.LUCENE_30);
{
var parser = new QueryParser(Version.LUCENE_30, searchField, analyzer);
var query = parseQuery(searchQuery, parser);
var hits = searcher.Search(query, 1000).ScoreDocs;
var results = _mapLuceneToDataList(hits, searcher);
return results;
}
}
}
////Some code
private static Query parseQuery(string searchQuery, QueryParser parser)
{
return parser.Parse(searchQuery.Trim());
}
我收到了这样的文字评论:“sometext python sometext”。当我使用 _search("python", "Text") 时,它会返回我的表。但是当我使用 _search("pyth", "Text") 时,它什么也找不到。
我很明确地知道,问题在
var query = parseQuery(searchQuery, parser);
var hits = searcher.Search(query, 1000).ScoreDocs;
但我不知道,我的查询中有问题,或者你应该在搜索器中转移一些参数......有人有什么建议吗?
亲切的问候。