擁有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票,並且指向類似的問題。 –