1

Apache tika を使用してメタデータを抽出し、HashMap に入れようとしています。しかし、私のコードは、そのキーの値ではなくキーのみを取得します。キーワードを(キーとして)保存するのと同じ方法ですが、その値は保存しません..
そして、mdに何が含まれているかを確認しようとすると、次のように表示されます:-

Description= title=Wireless Technology & Innovation | Mobile Technology Content-Encoding=UTF-8 Content-Type=text/html; charset=utf-8 Keywords= google-site-verification=AzhlXdqBSdUCRPJRY1evCtp2Ko5r9kxB_f81WffACUc 

    private Map<String, String> metaData;

        try {
                    Metadata md = new Metadata();
                    htmlStream = new ByteArrayInputStream(htmlContent.getBytes());
                    String parsedText = tika.parseToString(htmlStream, md);
                    //very unlikely to happen
                    if (text == null){
                        text = parsedText.trim();
                    }
                    processMetaData(md);
                } catch (Exception e) {
                    e.printStackTrace();
                } finally {
                    IOUtils.closeQuietly(htmlStream);
                }


        private void processMetaData(Metadata md){
                if ((getMetaData() == null) || (!getMetaData().isEmpty())) {
                    setMetaData(new HashMap<String, String>());
                }
                for (String name : md.names()){
//This below line is not working I guess, it stores only the key.. not the value of that particular key..      
    getMetaData().put(name.toLowerCase(), md.get(name));
                }
            }

        public Map<String, String> getMetaData() {
                return metaData;
            }

            public void setMetaData(Map<String, String> metaData) {
                this.metaData = metaData;
            }

どんな助けでも大歓迎です..

4

1 に答える 1

1

まず、Tika は特定のキーに対して複数の値を許可します。単純なものではMap<String,List<String>>なく、Map<String,String>

Tika Metadata JavaDocsをご覧になることをお勧めします。それぞれのメソッドを確認するか、毎回isMultiValued(String key)呼び出すだけですgetValues(String key)

特定のキーの最初の値を取得するのmetadata.get(String key)が正しい方法です。うまくいかない理由がわからない

おそらく、Tika App jar で遊んでみたいと思うでしょう。これは、物事をデバッグするための最良の方法です。

java -jar tika-app-1.0-SNAPSHOT.jar --metadata problem.file

これにより、ファイルに実際に含まれているメタデータを簡単に確認できるようになり、コードのどこで何か間違っているかを追跡できることがわかったら、

于 2011-09-16T10:22:42.023 に答える