Umbraco Lucene索引一个字段下的多个值

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的新手,所以任何建议都会感激不尽.