我需要索引分配给文章的一系列关键短语。短语存储为带有\ r \ n分隔符的字符串,一个短语可能包含另一个短语,例如:
这是一个关键词 这也是一个关键词 这也是一个关键词
将存储为
This is a key phrase too
在执行This is a key phrase
搜索时,只有<{1}}短语应与 相匹配。
我有一个实现ISimpleDataService
的自定义索引器可以正常工作并为内容编制索引,但我无法解决如何获取查询的问题,例如&#34;这是一个关键短语&#34;返回结果。
根据我的阅读,我认为默认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();
&#39;简单&#39;我认为这样做的方法是将每个关键字添加为单独的关键字&#39;字段,但作为.NET实现的一部分提供的SimpleDataSet
使用Dictionary<string, string>
,这使我无法使用多个具有相同名称的密钥。
我是Lucene和Umbraco的新手,所以任何建议都会感激不尽。