SolrNet:使用不同的模型进行索引与查询

问题描述 投票:0回答:1

在asp.net core api解决方案中,我使用solr进行全文搜索。我想了解如何配置 SolrNet 以使用不同的模型对同一集合进行索引和搜索。

对于我的用例,我仅将模型对象的 id 存储在 solr 中 - 其他字段已索引但未存储。这是因为我使用数据库来检索模型,一旦 solr 告诉我哪些 id 是搜索命中。

在这种情况下,假设我的模型是“文件夹”。我有一个文件夹集合,并在 DI 中注册它以进行 indexing,使用

FolderDto
对象来定义映射。

services.AddSolrNet<FolderDto>($"{solrEndpoint}/folders");
services.AddScoped<IFolderIndex, FolderIndex>();

我在

IFolderIndex
的实现中有索引方法。

我需要在 DI 中做什么来定义一个单独的 SolrNet 连接服务用于搜索,我想用一组

int
id 来响应?

asp.net-core solr solrnet
1个回答
0
投票

事实证明我只需要在 DI 中提供查询时间模型:

services.AddSolrNet<FolderDto>($"{solrEndpoint}/folders");
services.AddSolrNet<FolderQueryResultDto>($"{solrEndpoint}/folders"); // this bit
services.AddScoped<IFolderIndex, FolderIndex>();

然后我可以实例化一个合适的对象来在我的FolderIndex中进行查询:

public FolderIndex(ISolrOperations<FolderDto> solr, ISolrOperations<FolderQueryResultDto> solrSearcher)
{
    _solr = solr;
    _solrSearcher = solrSearcher;
}

这使得 SolrNet 知道当我使用它时

solrSearcher
它应该生成对正确端点的查询,并将响应解析为正确的类型。

© www.soinside.com 2019 - 2024. All rights reserved.