elasticsearch,apache-poi,apache-tika,Parsing,elasticsearch,Apache Poi,Apache Tika" /> elasticsearch,apache-poi,apache-tika,Parsing,elasticsearch,Apache Poi,Apache Tika" />

Parsing 使用ApacheTika解析和索引文档

Parsing 使用ApacheTika解析和索引文档,parsing,elasticsearch,apache-poi,apache-tika,Parsing,elasticsearch,Apache Poi,Apache Tika,我正试图用ApacheTika将.doc文件解析并索引到elasticsearch中。 实际上,我的项目是为我的公司建立一个简历搜索引擎 因为我们有一个标准化的简历格式,所以我想用Java中的ApacheTika解析这些简历 基本上我有这样一个.doc文件: Jean Wisser avenue des Ternes

我正试图用ApacheTika将.doc文件解析并索引到elasticsearch中。 实际上,我的项目是为我的公司建立一个简历搜索引擎

因为我们有一个标准化的简历格式,所以我想用Java中的ApacheTika解析这些简历

基本上我有这样一个.doc文件:

   Jean Wisser                                           avenue des Ternes
                                                          75017 Paris
   Business Intelligence Consultant

   Skills : Qlikview, SAS, Cognos, ...
   Companies : IBM, Orange, ...
 XContentBuilder builder = jsonBuilder()
    .startObject()
        .field("Name", "Jean")
        .field("Lastname", "Wisser")
        .startObject("Adress")
                .field("Street", "avenue des Ternes")
                .field("City", "Paris")
           ......
           .endObject()
    .endObject()
我想提取并解析内容,在elasticsearch中为其编制索引,如下所示:

   Jean Wisser                                           avenue des Ternes
                                                          75017 Paris
   Business Intelligence Consultant

   Skills : Qlikview, SAS, Cognos, ...
   Companies : IBM, Orange, ...
 XContentBuilder builder = jsonBuilder()
    .startObject()
        .field("Name", "Jean")
        .field("Lastname", "Wisser")
        .startObject("Adress")
                .field("Street", "avenue des Ternes")
                .field("City", "Paris")
           ......
           .endObject()
    .endObject()
实现这一目标的最佳方式是什么?
我应该使用Tika、POI或其他什么吗?

我不知道我是否理解您的问题,但是如果您需要一个工具来帮助您提取与“.doc”文件中每种类型信息相对应的信息,Tika无法自动为您这样做(如果文档的元数据中还没有这些信息),但是您需要首先准备数据(提取文本并编写自己的程序来解析和提取数据)。提取数据后,可以使用所需的字段为文档编制索引

对!!这正是我想要做的,但我不知道应该用什么来解析我的.doc文件。实际上,我想用Tika在XHTML中转换我的文件,然后使用XPATH之类的东西来提取我的字段。你有什么建议吗?首先,在考虑指数化之前,先考虑提取所需的信息。您可以逐行阅读文档,还可以使用一些正则表达式提取所需的数据。例如,如果一行以“技能”开头,那么该行的其余部分就是技能列表。您还可以使用regex提取地址,或者使用GATE(文本工程的通用体系结构)从文档中提取地址,并将结果保存在xml文件中(如果需要)。对于人名,如果所有文档的第一行都以人名开头,您应该很容易提取。如果没有,则需要使用Stanford NER进行实体识别。NER将为您提供文本中存在的人名列表。NER还可以提取campanies的名称,但我认为在您的情况下,只需搜索以“companys:”足够让您在文档中获得公司列表。对于您的建议,我认为XHTML不会有帮助。但是你可以试试:)非常感谢你的回答。实际上我想使用XHTML,因为Tika可以将任何文件格式解析为XHTML,所以如果我收到另一种文件格式(.pdf,…),我的解析方法将始终使用标准的XHTML输入。word文件的不同部分应用了不同的样式吗?或者只是随机/无样式?是的,它们有不同的样式,但我不知道如何提取它们。当我用tika提取内容时,我只得到普通文本你怎么称呼tika?如果你问对了,Tika会很乐意给你XHTML的!当我得到XHTML时,它只给我一些基本的或标记,这些标记并不可靠,因为有时人们会忘记用粗体显示标题或保持与以前相同的布局。相反,我使用正则表达式来识别简历中的块。