我正试图通过控制台将PDF上传到CloudSearch。添加文档时,无法有效搜索内容。控制台生成SDF格式的JSON,如下所示:
[ {
"type" : "add",
"id" : "Sample.pdf",
"fields" : {
"content_type" : "text/plain",
"content_encoding" : "windows-1252",
"resourcename" : "Sample.pdf",
"content" : "%PDF-1.6\r\nCatalogx^½]ÛrÜ6�}Ÿ¯˜ÊÃ{...}\r\n%%EOF"
}
} ]
当我试图搜索文档内容时,上面可读的文本(PDF、目录)出现,但没有任何有用的文档内容。
我很惊讶地看到:
content/type
是text/plain
而不是appliation/pdf
,并且然后,我手工制作了自己的批处理XML文件,尝试同样的方法:
<batch>
<add id="pdftest1">
<field name="content_type">application/pdf</field>
<field name="resourcename">Sample1.pdf</field>
<field name="content">{copied from aws console output}</field>
</add>
</batch>
和
<batch>
<add id="pdftest2">
<field name="content_type">application/pdf</field>
<field name="resourcename">Sample2.pdf</field>
<field name="content">{base64 encoded pdf contents}</field>
</add>
</batch>
有没有可能让CloudSearch在不将PDF转换为文本文件的情况下搜索PDF的“有用”内容?
如果是,我做错了什么?
2016年6月27日编辑
CloudSearch命令行界面通过将PDF转换为原始文本来生成批处理。不确定为什么AWS云搜索控制台不做同样的事情。
C:\Downloads>cs-import-documents --source .\Sample.pdf --output .\1.json
生产:
[ {
"type" : "add",
"id" : "xmlC:_Downloads_Sample.pdf",
"fields" : {
"content_type" : "applicathtml" target="_blank">ion/pdf",
"created" : "Fri Jun 17 11:14:45 EDT 2016",
"resourcename" : "Sample.pdf",
"content" : "6/17/2016 [... remaining text omitted for brevity ...]
}
} ]
AWS文件包括:
Amazon CloudSearch控制台提供了一种从几种常见文件类型自动生成格式正确的JSON或XML的方法:PDF、Microsoft Excel、Microsoft PowerPoint、Microsoft Word、CSV、文本和超文本标记语言。
截至2016年6月24日,这似乎是不正确的(或者我在使用控制台时错过了一些东西)。
这给我留下了另一个问题:什么是一种合理有效的方法,可以每天将S3存储桶中的数百个新PDF放入CloudSearch?明确地:
如果CLI是推荐的方式,那似乎效率低下,因为(我假设)CLI必须从S3中提取PDF,转换为文本,然后将生成的SDF推送到CloudSearch。似乎。。。奇怪的是,AWS不会提供一个针对CS的API调用,而这正是为我所做的。也许他们真的提供了,而我却错过了?
终于,我能让它工作了!对我来说,它的工作方式是使用cs导入文档AWS Cloudsearch命令。cs导入文档——源“c:\test.pdf”——输出“c:\test.sdf”
它产生了一个。json文件。我通过控制台将其上传到Cloudsearch,搜索提供了结果。
祝你好运拉杰
这里也有同样的问题。我正在从事文档管理项目(C#,WPF),希望在S3的CloudSearch上为大量PDF编制索引。
以下流程符合我的要求。我找不到其他解决办法。
将文档添加到CloudSearch的代码
// Find all files in root folder create index on them
List<string> lstFiles = listAllFilesOnCloud("[BucketName]");
foreach (string strFile in lstFiles)
{
string FileName = System.IO.Path.GetFileNameWithoutExtension(strFile);
string Text = ExtractTextFromPdf("https://s3.amazonaws.com/" + strFile);
string Path = strFile;
DateTime ModifiedDate = DateTime.Now;
string headerText = Text.Substring(0, Text.Length < 150 ? Text.Length : 150);
foreach (var docs in ltDocumentTypes)
{
if (headerText.ToUpper().Contains(docs.searchText.ToUpper()))
{
DocumentType = docs.DocumentType;
Vault = docs.VaultName; ;
}
}
if (string.IsNullOrEmpty(DocumentType))
{
DocumentType = "Default";
Vault = "Default";
}
IndexDocument docDetail = new IndexDocument();
docDetail.filename = FileName;
docDetail.text = Text;
docDetail.path = Path;
docDetail.modifieddate = ModifiedDate;
UploadDcoumentOnCloudSearch(docDetail);
}
使用ITexSharp提取PDF格式的文本。
我创建了一个索引映射,就像这样,现在我将使用filebeat向Elasticsearch发送一个json文件,如何确保配置我的filebeat。yml将信息发送到我刚刚创建的新索引映射? 索引映射: 我的音乐节拍。yml: #设置日志级别。默认的日志级别是info.#可用的日志级别包括:错误、警告、信息、调试#日志。级别:调试 我想确保我将用filebeat上传的内容,会正确提交到我之前设置的El
问题内容: 如何在目录/子目录中搜索PDF文件的内容?我正在寻找一些命令行工具。似乎无法搜索PDF文件。 问题答案: 您的发行版应提供一个名为的实用程序: 要使pdftotext输出到stdout,而不是文件,必须使用“-”。在和选项将在grep的输出把文件名。可选标志不错,它告诉grep使用终端上的颜色进行输出。 (在Ubuntu中,由或提供。) 这种方法,使用和,拥有一个优势,如果你想使用GN
我有一个需要缩小的pdf。pdf是A4竖屏的,我需要的是将pdf的内容缩小到5%,并将其放入一个新的A4和竖屏大小的PDF中。将pdf转换为图像、缩放并放回pdf不是一个选项。我正在寻找一种在java中解决这个问题的方法。有没有办法用pdfbox或itext解决这个问题?
问题内容: 如何在iText中完成此操作?我有一个带有客户签名的PDF。我需要向未签名的属性添加ocsp响应。 我知道如何使用 但我不知道如何使用替换PDF 。如果我使用此代码: 包含签名的字典在哪里,则签名(在Adobe Reader中打开文档时)被破坏。 问题答案: 当iText 在正常模式下操作文档时,它可以(并且经常)重新排列现有的PDF对象。显然,这破坏了任何现有集成签名的哈希值。此外,
我想在中显示pdf文件的内容。 问题:当我启动时,一个新的对话框正在打开,不管我是想在浏览器中还是在pdf查看器中加载pdf。但我想直接在中加载内容。我还尝试了一个前缀url来嵌入内容,但结果显示:没有预览可用。 我的代码: 我现在用android-pdfView库用下面的代码尝试了一下: 但随后会在以下地址出现一个:。adress直接引用了我onedrive帐户中的pdf文件。所以当我在浏览器中