我使用Solr(版本6.6.0)索引某些文件,并使用ExtractingRequestHandler方法处理PDF文件等内容。这个工作大部分都很好,因为文件是索引和可搜索的。但是有一个奇怪的怪癖我不明白,这是不可取的。
问题在于:当我以这种方式索引PDF时,"内容"字段结束了一堆"元数据的东西"与实际内容混在一起。以下是索引Solr附带的示例PDF之一后得到的一个示例:
This is a test of PDF and Word extraction in Solr, it is only a test. Do not panic.
我期望(并希望)在该领域中看到的是
$(document).on("keyup", "input", function() {
var sum1 = 0;
var turkey = parseInt($('.turkey').val(), 10);
if($(this).val() <= 5){
sum1 === 1 ? sum1 : sum1++;
} else if ($(this).val() >=6 && $(this).val() <=12) {
sum1 === 2 ? sum1 : sum1 += 2;
} else if ($(this).val() >= 13 && $(this).val() <=20) {
sum1 === 3 ? sum1 : sum1 += 3;
} else if ($(this).val() >= 21 && $(this).val() <=30) {
sum1 === 4 ? sum1 : sum1 += 4;
}
$(".results-4").html(sum1);
addResults();
});
$(document).on("keyup", "input", function() {
var sum2 = 0;
var chicken = parseInt($('.chicken').val(), 10);
if($(this).val() <= 5){
sum2 === 1 ? sum2 : sum2++;
} else if ($(this).val() >=6 && $(this).val() <=12) {
sum2 === 2 ? sum2 : sum2 += 2;
} else if ($(this).val() >= 13 && $(this).val() <=20) {
sum2 === 3 ? sum2 : sum2 += 3;
} else if ($(this).val() >= 21 && $(this).val() <=30) {
sum2 === 4 ? sum2 : sum2 += 4;
}
$(".results-5").html(sum2);
addResults();
});
function addResults() {
var res4 = $(".results-4").text();
var res5 = $(".results-5").text();
$(".results-6").text(res4 + res5);
}
位。
是否有一个我需要旋转的设置来控制它,或者这只是标准行为,还是什么?
FWIW,我的schema.xml没有启用任何copyField元素,我在solrconfig.xml文件中使用 ClassicIndexSchemaFactory 。
答案 0 :(得分:0)
我已经记住了同样的问题。 最后我通过在solrconfig.xml中添加它来解决它
<str name="fmap.meta">ignored_</str>
<str name="uprefix">ignored_</str>
将使所有元数据和其他字段不匹配ignore_(未编入索引而未存储)
答案 1 :(得分:0)
我发现我可以通过使用XPath属性仅选择解析器创建的xml的正文部分来剥离元数据:
extractFormat=xml
xpath=/xhtml:html/xhtml:body//node()
如果可以通过某些设置来做到这一点会更好,但是Tika似乎不支持它。
至少此解决方案为突出显示替代项提供了合理的结果,因为内容字段中的元数据只是无关字符串的无用混乱,不会给用户任何线索。
希望有帮助。