拥有Name
和Description
字段的文档。 Name
有更多的重量Description
如何让搜索更自然?
我想通过分数这样的命令文件:
- 精确匹配
- 部分匹配
- 模糊匹配
- 模糊部分匹配
- 邻近字词得分较高。
我做这个手术来得到类似我想要的东西:
public Task<DocumentSearchResult<T>> SearchWithFuzzyAsync<T>(string searchTerm, SearchParameters sp) where T: class
{
sp.SearchMode = SearchMode.All;
sp.QueryType = QueryType.Full;
searchTerm = Sanitize(searchTerm).Trim();
var keywordTrimmedFuzzy = searchTerm.Replace(" ", "~ ");
if (string.IsNullOrWhiteSpace(searchTerm))
{
return Task.FromResult(new DocumentSearchResult<T>());
}
var searchTerms = $"({searchTerm})
|| ({keywordTrimmedFuzzy}~)
|| ({keywordTrimmedFuzzy}*)^0.8";
return indexClient.Documents.SearchAsync<T>(searchTerms, sp);
我缺少的东西,或者我应该建立这种类型的事情得到一些像样的成绩?
我用这种方法看到的问题是,我不能让我的用户使用搜索引擎来它的全范围(就像使用选项 - 或高级语法),除非我管理我的代码。
,那岂不是更容易,如果你可以这样做:
sp.UseFuzzySearch = true;
sp.UsePartialMatch = true;
sp.ProximityTreshold = 4;
indexClient.Documents.SearchAsync<T>(term, sp);
,而不是创建摇晃的搜索字符串?我错过了什么?
我正在使用得分情景模式(忘记提及)。不清楚你的注意事项是,如果在这里使用的'^ 0.8'({keywordTrimmedFuzzy} *)^ 0.8'正在影响结果。 –
我发现很难想象除了一些简单的测试没有请求这个功能之外,有人使用天蓝色搜索。没有它,如果我有一个标题'巴特'和搜索'酒吧'或'巴特*'不会返回该项目。我不明白为什么最后一个是通过设计而不是bug。 –
https://feedback.azure.com/forums/263029-azure-search/suggestions/11112582-support-prefix-matching-for-suggestions是全球有机纺织品标准13票,并且指向类似的问题。 –