2011-04-10 5 views
0

bonjour: Je suis en train d'écrire du code en Java pour nutch (moteur de recherche open source) pour enlever les mouvements de mots arabes dans l'indexeur. Je ne sais pas quelle est l'erreur. Lla est le code:a écrit le code en java pour nutch

package com.mycompany.nutch.indexing; 
import org.apache.hadoop.conf.Configuration; 
import org.apache.hadoop.io.Text; 
import org.apache.log4j.Logger; 
import org.apache.nutch.crawl.CrawlDatum; 
import org.apache.nutch.crawl.Inlinks; 
import org.apache.nutch.indexer.IndexingException; 
import org.apache.nutch.indexer.IndexingFilter; 
import org.apache.nutch.indexer.NutchDocument; 
import org.apache.nutch.parse.getData().parse.getData(); 


public class InvalidUrlIndexFilter implements IndexingFilter { 

    private static final Logger LOGGER = 
    Logger.getLogger(InvalidUrlIndexFilter.class); 

    private Configuration conf; 

    public void addIndexBackendOptions(Configuration conf) { 
    // NOOP 
    return; 
    } 

    public NutchDocument filter(NutchDocument doc, Parse parse, Text url, 
     CrawlDatum datum, Inlinks inlinks) throws IndexingException { 
    if (url == null) { 
     return null; 
    } 



    char[] parse.getData() = input.trim().toCharArray(); 
     for(int p=0;p<parse.getData().length;p++) 
      if(!(parse.getData()[p]=='َ'||parse.getData()[p]=='ً'||parse.getData()[p]=='ُ'||parse.getData()[p]=='ِ'||parse.getData()[p]=='ٍ'||parse.getData()[p]=='ٌ' ||parse.getData()[p]=='ّ'||parse.getData()[p]=='ْ' ||parse.getData()[p]=='"')) 
      new String.append(parse.getData()[p]); 

    return doc; 
    } 

    public Configuration getConf() { 
    return conf; 
    } 

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

Je pense que l'erreur est à utiliser parse.getdata() mais je ne sais pas ce que je devrais utiliser au lieu de?

+0

Quel problème avez-vous? Exception? Ne pas obtenir les résultats escomptés? quelle? btw, ce nouveau String.append (parse.getData() [p]); ne signifie rien ... car vous n'attribuez pas la chaîne à quelque chose. – MeBigFatGuy

+0

merci pour votre commentaire j'ai 2 erreurs comment je peux attribuer la nouvelle valeur des mots dans l'indexeur à l'indexeur ?? – moneera

+0

Pour ajouter des mots, vous avez la méthode doc.add (nom, valeur) qui prend deux chaînes. – Howard

Répondre

1

La ligne

char[] parse.getData() = input.trim().toCharArray(); 

vous donnera une erreur de compilation parce que le côté gauche est pas une variable. Veuillez remplacer parse.getData() par un nom de variable unique (par exemple parsedData) dans cette ligne et les lignes suivantes.

Deuxième l'importation de

import org.apache.nutch.parse.getData().parse.getData(); 

ne réussiront pas. Ressemble beaucoup à un problème de remplacement de texte.

+0

Merci beaucoup pour votre réponse, mais je ne sais pas quel est le type de la variable que je vais mettre dans le code (par exemple parsedData) et comment je vais initialiser les mots dans l'indexeur, puis renvoyer la valeur de cette variable à indexer s'il vous plaît répondre avec un code complet pleeeaase – moneera

+0

@hala Votre question n'est pas aussi claire que je peux fournir un code. Je ne comprends vraiment pas ce que vous essayez d'accomplir. – Howard

+0

s'il vous plaît Howard m'aider: je veux écrire un filtre indexeur qui prend les mots arabes de l'indexeur et supprimer les mouvements de ces mots puis les renvoyer à l'indexeur ce que je devrais utiliser à la place de la parse.getdata() et ce je devrais mettre dans le doc.add (nom, valeur) s'il vous plaît aide meeee s'il vous plaît – moneera

Questions connexes