2016-11-23 3 views
2

私はNutch 1.12をElastic Searchで使用していますので、フィールドを動的にNutchDocumentに追加したいと思います。NutchDocumentにフィールドを動的に追加します

現在、静的なフィールド値をNutchDocumentに追加し、それを弾性検索にインデックスすることができます。私はNutchDocumentを、解析後に作成されていることを考える

public class CustomIndexFilter implements IndexingFilter { 

    private Configuration conf; 

    public Configuration getConf() { 
     return conf; 
    } 

    public void setConf(Configuration conf) { 
     this.conf = conf; 
    } 

    @Override 
    public NutchDocument filter(NutchDocument doc, Parse parse, Text url, CrawlDatum datum, Inlinks inlinks) { 
     String content = parse.getText(); 
     doc.add("pageLength", content.length()); 
     return doc; 
    } 
} 

は、ここに私のインデックスフィルタのコードスニペットです。ですからフィールド値はその前に供給する必要があります(私はこれをどこに供給すべきか分かりません)。これの回避策を模索しています。

あなたはIndexingFiltersによって変更、分かったとして任意の助けが理解されるであろう:)

答えて

2

これを回避する方法を提案します。 Nutch REST APIを使用すると、クロール実行のカスタムオプションを使用してカスタム構成を作成できます。カスタムインデクサプラグインの中でその特定の設定を読んでください。このようにして、フィールドの値をに設定して、インデックスから何をインデックスするかを制御することができます。NutchDocument HTH

2

NutchDocumentは、索引付けステップ中に作成され。後者はしばしば構文解析に由来するメタデータを使用しますが、フィールド自体は主にIndexingFiltersによって作成されます(一部は主索引コードによって作成されます)。たとえば、設定に基づいてフィールドを生成するためのプラグインがいくつかあります。 index-metadataまたはindex-staticです。

関連する問題