我在索引文档时发现this article很有用,但是,如何附加其他字段以便我可以传入数据库中的文档ID以用于显示搜索结果?我想通过使用Fields(Of ExtractParameters类)属性,我可以使用文档索引其他数据,但这似乎不起作用或者不是它的功能。
示例代码:
var solr = ObjectLocator.Instance.Resolve<ISolrOperations<IndexDocument>>();
var guid = Guid.NewGuid().ToString();
using (var fileStream = System.IO.File.OpenRead(Server.MapPath("~/files/") + "greenroof.pdf"))
{
var response =
solr.Extract(
new ExtractParameters(fileStream, "greenRoof1234")
{
ExtractFormat = ExtractFormat.Text,
ExtractOnly = false,
Fields = new[] { new ExtractField("field1", "value1"), new ExtractField("field2", "value2") }
});
}
答案 0 :(得分:2)
@aitchnyu是正确的,通过literal.field=value
方法传递值是正确的方法。
但是,根据ExtractingRequestHandler support中SolrNet Google Group上的这篇文章,ExtractParameters.Fields无法正常运行。这在SolrNet的0.4.0.X版本中得到修复。请确保您使用的是最新版本的SolrNet。您可以通过以下方式之一获得:
此讨论还有一些在SolrNet中使用ExtractingRequestHandler的好例子,以及在无法升级到较新版本的SolrNet时添加其他字段值的解决方法。
答案 1 :(得分:1)
这就足够了:http://wiki.apache.org/solr/ExtractingRequestHandler#Literals。
通常在上传时使用literal.field=value
。
答案 2 :(得分:0)
事实证明,这不是SOLRNet的问题,而是我对SOLR的了解。我需要在模式中指定字段。在我将字段添加到我的模式后,它们在我的SOLR查询中可见。