2017-08-03 69 views
0

我正在使用Apache Solr 6.6.0,以通过递归编制索引文件夹中的所有文件来构建搜索引擎。更新Solr中的字段配置6.6.0

我如何做到这一点如下:1)我创建一个基于云示例的索引。 2)我索引给定文件夹中的所有文件。

bin\solr start -e cloud -noprompt 
java -Dc=gettingstarted -Dauto=yes -Ddata=files -Drecursive=yes -jar example\exampledocs\post.jar <path_to_folder> 

后来,当我搜索在用户界面中查询时,我看到的是,即使它为我提供了顶级的比赛,它没有提供我的文档内容。经过一番研究,我发现在托管模式文件命名字段,“_text_”和它的配置:

<field name="_text_" type="text_general" multiValued="true" indexed="true" stored="false"/> 

正如你看到的,本场不会被保存,我认为这就是为什么响应确实的原因不提供内容。

我在正确的轨道上吗?如果是这样,我该如何编辑这个字段的配置?我应该删除它并创建一个具有相同名称和存储=真的新的吗?

谢谢。

回答

1

_text_字段不应被存储,因为它被用作“全部捕获”字段。所以首先,你应该检查Solr配置,以确保它只包含文件内容。如果是这样,那么你可以将该字段标记为已存储。

但是,一般来说,文件内容仅供索引,不存储,因为

  • 一个GUI,为了让最终用户看到的内容,有一些其他的方式来访问文件的内容(就像txt文件如通常是静态的资源发表在一个单独的Apache实例,所以从客户的角度来看,它只是一个做一个HTTP URL)
  • 它会增加你的索引大小很多事情

所以,换句话说:使用Solr进行搜索,一旦得到给定的项目元数据,使用其标识符进入其他系统并“查看”相应的内容。这是通常的情况,特别是处理非结构化数据,如txt文件

  • “通常”并不意味着它总是有效。可能有些情况下,你想Solr做到这一点,或者一般情况下,可能有其他一些很好的理由来标记字段存储(例如突出显示)
+0

是的,我意识到,正如你所说,'_text_ '抓住所有人,所以它必须包含一切,包括内容。但是,我觉得编辑这个字段并不是存储文档内容的最合适的方式。没有更好的方法来存储内容? –

+0

这取决于你对内容的处理方式;)正如我所说的,人们经常通过外部http服务提供文件内容。如果您认为这是您正在寻找的内容,请接受答案 – Andrea

+0

我知道它会增加索引大小,但我的目标是了解Solr如何解析文档并提取其内容。因此,自己提供内容对我的目标无益。此外,突出显示匹配短语是我想要添加的另一个功能。 –