使用SolrNet使用其他搜索字段索引PDF文档?

时间:2012-07-20 03:00:05

标签: solr solrnet

我在索引文档时发现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") }




                        });
            }

3 个答案:

答案 0 :(得分:2)

@aitchnyu是正确的,通过literal.field=value方法传递值是正确的方法。

但是,根据ExtractingRequestHandler supportSolrNet 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查询中可见。