SOLR单元如何添加文档内容?
SOLR有一个名为Cell的模块。它使用Tika从文档中提取内容,并使用SOLR对其进行索引 从上的源代码中,我得出结论,Cell将原始提取的文本放在一个名为“content”的字段中。该字段由SOLR索引,但不存储。当您查询文档时,“内容”不会出现 我的SOLR实例没有模式(我保留了默认模式) 我正在尝试使用默认的SOLR单元如何添加文档内容?,solr,solr-cell,Solr,Solr Cell,SOLR有一个名为Cell的模块。它使用Tika从文档中提取内容,并使用SOLR对其进行索引 从上的源代码中,我得出结论,Cell将原始提取的文本放在一个名为“content”的字段中。该字段由SOLR索引,但不存储。当您查询文档时,“内容”不会出现 我的SOLR实例没有模式(我保留了默认模式) 我正在尝试使用默认的UpdateRequestHandler(POST to/solr/corename/update)实现类似的行为。POST请求如下: 乱数假文 123456 17 以这种方式添
UpdateRequestHandler
(POST to/solr/corename/update
)实现类似的行为。POST请求如下:
乱数假文
123456
17
以这种方式添加文档后,内容字段将被编入索引并存储。它出现在查询结果中。我不想这样;这是浪费空间
单元格添加文档的方式缺少什么?如果不希望字段存储内容,则必须将字段设置为stored=“false” 由于您使用的是无模式模式(仍然存在一个模式,它只是在添加新字段时动态生成的),因此必须使用更改字段 你可以:
您可以通过对
/collection/schema/fields
发出请求,如果不希望字段存储内容,则必须将字段设置为stored=“false”
由于您使用的是无模式模式(仍然存在一个模式,它只是在添加新字段时动态生成的),因此必须使用更改字段
你可以:
您可以通过对
/collection/schema/fields
发出请求,单元格代码确实会将内容作为内容
添加到文档中,但是有一个内置的字段转换规则,它将内容
替换为\u文本
。在无模式的SOLR中,\u text\u
被标记为不用于存储
该规则由SolrContentHandler.addField()
中的以下行调用:
String name=findMappedName(fname);
在params对象中,有一条规则,即fmap.content
应被视为\u text
。它来自corename\conf\solrconfig.xml
,默认情况下,其中有以下片段:
真的
忽略_
_文本
同时,在corename\conf\managed\u模式中有一行:
这就是整个故事。单元格代码确实将内容作为
内容添加到文档中,但是有一个内置的字段转换规则,它将内容
替换为\u文本
。在无模式的SOLR中,\u text\u
被标记为不用于存储
该规则由SolrContentHandler.addField()
中的以下行调用:
String name=findMappedName(fname);
在params对象中,有一条规则,即fmap.content
应被视为\u text
。它来自corename\conf\solrconfig.xml
,默认情况下,其中有以下片段:
真的
忽略_
_文本
同时,在corename\conf\managed\u模式中有一行:
这就是全部情况。我已经完成了查询。content
字段在那里,但它没有stored=false
。还有另一个名为\u text\u
的字段,它确实具有存储=false
。但是,我在单元格源中找不到任何对\u text\u
的引用…我已经完成了查询。content
字段在那里,但它没有stored=false
。还有另一个名为\u text\u
的字段,它确实具有存储=false
。但是,我在单元格源中找不到任何对\u text\u
的引用。。。
curl -X POST -H 'Content-type:application/json' --data-binary '{
"replace-field":{
"name":"content",
"type":"text",
"stored":false }
}' http://localhost:8983/solr/collection/schema