我正在尝试使用ContentSearch.LINQ库在Sitecore 7.5中实现自定义搜索,并使用模糊搜索。对于仅包含字母字符和空格的字符串,它就像一个魅力,即“ cxlcium ”将返回“钙”的结果。然而,最终的目标是防止常见的拼写错误 - “ St Johns Wort ”应该返回带有“圣约翰草”的项目。有趣的是,“St. Johns Wort”将返回零结果,并且完全匹配将因单引号而引发异常(我假设可能需要进行转义,尽管它在StartsWith
上没有问题或Contains
类型搜索)。我试过上下移动minimumSimilarity
值无济于事。
对于它的价值,这也是通过Coveo索引而不是Lucene。 提前感谢任何见解。
代码如下:
var productResults = context.GetQueryable<SearchResultItem>()
.Where(x => x["productname"].Like(searchQuery, .7f)
.Take(10)
.OrderBy(x => x["productname"])
.GetResults();
答案 0 :(得分:1)
使用Coveo提供的语音匹配扩展可能会更好。更多信息:
https://developers.coveo.com/display/public/SC201409/Coveo+LINQ+Extensions