我正在学习 Amazon Cloud Search,但找不到任何 C# 或 Java 代码(尽管我正在使用 C# 创建,但如果我可以获取 Java 代码,那么我可以尝试使用 C# 进行转换)。
这只是我在 C# 中找到的 1 段代码:https://github.com/Sitefinity-SDK/amazon-cloud-search-sample/tree/master/SitefinityWebApp.
这是我在这段代码中找到的 1 个方法:
public IResultSet Search(ISearchQuery query)
{
AmazonCloudSearchDomainConfig config = new AmazonCloudSearchDomainConfig();
config.ServiceURL = "http://search-index2-cdduimbipgk3rpnfgny6posyzy.eu-west-1.cloudsearch.amazonaws.com/";
AmazonCloudSearchDomainClient domainClient = new AmazonCloudSearchDomainClient("AKIAJ6MPIX37TLIXW7HQ", "DnrFrw9ZEr7g4Svh0rh6z+s3PxMaypl607eEUehQ", config);
SearchRequest searchRequest = new SearchRequest();
List<string> suggestions = new List<string>();
StringBuilder highlights = new StringBuilder();
highlights.Append("{\'");
if (query == null)
throw new ArgumentNullException("query");
foreach (var field in query.HighlightedFields)
{
if (highlights.Length > 2)
{
highlights.Append(", \'");
}
highlights.Append(field.ToUpperInvariant());
highlights.Append("\':{} ");
SuggestRequest suggestRequest = new SuggestRequest();
Suggester suggester = new Suggester();
suggester.SuggesterName = field.ToUpperInvariant() + "_suggester";
suggestRequest.Suggester = suggester.SuggesterName;
suggestRequest.Size = query.Take;
suggestRequest.Query = query.Text;
SuggestResponse suggestion = domainClient.Suggest(suggestRequest);
foreach (var suggest in suggestion.Suggest.Suggestions)
{
suggestions.Add(suggest.Suggestion);
}
}
highlights.Append("}");
if (query.Filter != null)
{
searchRequest.FilterQuery = this.BuildQueryFilter(query.Filter);
}
if (query.OrderBy != null)
{
searchRequest.Sort = string.Join(",", query.OrderBy);
}
if (query.Take > 0)
{
searchRequest.Size = query.Take;
}
if (query.Skip > 0)
{
searchRequest.Start = query.Skip;
}
searchRequest.Highlight = highlights.ToString();
searchRequest.Query = query.Text;
searchRequest.QueryParser = QueryParser.Simple;
var result = domainClient.Search(searchRequest).SearchResult;
//var result = domainClient.Search(searchRequest).SearchResult;
return new AmazonResultSet(result, suggestions);
}
我已经使用 AWS 控制台在 Amazon Cloud Search 中创建了域,并使用 Amazon 预定义配置选项上传了文档,即电影 Imdb json亚马逊提供的演示文件。
但在这种方法中,我不知道如何使用这种方法,就像我想搜索一样Directorname 那么我如何传入这个方法,因为这个方法参数是类型搜索查询?
我建议使用官方的AWS CloudSearch .NET 软件开发工具包。您正在查看的库似乎不错(虽然我没有查看任何细节),但官方版本更有可能在发布后立即公开新的 CloudSearch 功能,如果您需要与 AWS 交谈,将得到支持支持等等
具体来说,看看搜索请求类——它的所有参数都是字符串,所以我认为这消除了你关于 ISearchQuery 的问题。
我无法在 .NET 中找到查询的示例,但是this显示某人使用 AWS .NET SDK 上传文档。它本质上与查询过程相同:创建和配置 Request 对象并将其传递给客户端。
EDIT:
既然你仍然遇到困难,这里有一个例子。请记住,我不熟悉 C#,也没有尝试运行甚至编译它,但我认为它至少应该接近工作。它基于查看文档http://docs.aws.amazon.com/sdkfornet/v3/apidocs/
// Configure the Client that you'll use to make search requests
string queryUrl = @"http://search-<domainname>-xxxxxxxxxxxxxxxxxxxxxxxxxx.us-east-1.cloudsearch.amazonaws.com";
AmazonCloudSearchDomainClient searchClient = new AmazonCloudSearchDomainClient(queryUrl);
// Configure a search request with your query
SearchRequest searchRequest = new SearchRequest();
searchRequest.Query = "potato";
// TODO Set your other params like parser, suggester, etc
// Submit your request via the client and get back a response containing search results
SearchResponse searchResponse = searchClient.Search(searchRequest);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)