我有完全相同的要求,但找不到任何方法来轻松处理建议者SolrNet 的结果。不幸的是,SolrNet 似乎是围绕默认构建的/select
请求处理程序,目前不支持任何其他处理程序,包括/suggest
对于对象类型映射(T
)。它期望所有映射都与索引的 Solr 文档结果一起发生,而不是与建议器结果一起发生。
Hence, @Paige Cook 的回答不适合我。T
具有映射的类型与建议者结果响应不兼容。来自初始化请求的所有标准管道代码(Startup.Init<T>()
) 到查询 (ISolrQueryResults<T> results = solr.Query()
)需要映射的 Solr 文档类型,而不是建议者提供的简单字符串数组。
因此,(类似于@dfay)我发出一个 Web 请求并从 XML Web 响应中解析出建议的结果。这SolrConnection
类用于此目的:
string searchTerm = "ha";
string solrUrl = "http://localhost:8080/solr/collection1";
string relativeUrl = "/suggest";
var parameters = new Dictionary<string, string>
{
{"q", searchTerm},
{"wt", "xml"},
};
var solrConnection = new SolrConnection(solrUrl);
string response = solrConnection.Get(relativeUrl, parameters);
// then use your favorite XML parser to extract
// suggestions from the reponse string
或者,请求可以使用以下命令返回 JSON 响应,而不是 XMLwt=json
范围:
var parameters = new Dictionary<string, string>
{
{"q", searchTerm},
{"wt", "json"}, // change this!
};
// then use your favorite JSON parser