Tow*_*own 5 lucene examine umbraco7
我要求索引分配给文章的一系列关键短语.短语存储为带有\ r \n分隔符的字符串,一个短语可能包含另一个短语,例如:
这是一个关键短语
这也是一个关键短语
这也是一个关键短语
将被存储为
keywords: "This is a key phrase\r\nThis is a key phrase too\r\nThis is also a key phrase"
它只有这句话的文章This is a key phrase too应该不是当搜索匹配This is a key phrase执行.
我有一个自定义索引器实现ISimpleDataService工作正常并索引内容,但我无法弄清楚如何获取查询,如"这是一个关键短语"来返回结果.
从我读过的内容来看,我认为默认QueryParser应该在分隔符上拆分,并将每个条目视为一个单独的值,但它似乎不会那样工作.
虽然我尝试了各种实现,但我目前的搜索代码如下所示:
var searcher = ExamineManager.Instance.SearchProviderCollection["KeywordsSearcher"];
var searchCriteria = searcher.CreateSearchCriteria(BooleanOperation.Or);
var query = searchCriteria.Field("keywords", keyword).Compile();
var searchResults = searcher.Search(query).OrderByDescending(x => x.Score).ToList();
Run Code Online (Sandbox Code Playgroud)
我认为这样做的"简单"方法是将每个关键字添加为单独的"关键字"字段,但SimpleDataSet作为.NET实现的一部分提供使用a Dictionary<string, string>,这使我无法使用多个密钥.一样的名字.
我是Lucene和Umbraco的新手,所以任何建议都会感激不尽.
| 归档时间: |
|
| 查看次数: |
260 次 |
| 最近记录: |