Vous pouvez activer la recherche sur davantage de types de contenu non structuré afin que les données de pièces jointes personnalisées puissent être traitées par le biais de la recherche et récupérées dans les résultats de recherche du magasin.
Important : HCL Commerce Search les données non structurées déchiffrées par défaut. Autrement dit, le traitement des données chiffrées avec HCL Commerce Search n'est pas pris en charge.
Avant de commencer
Vous devez exécuter les tâches suivantes :
- Votre base de données contient des types de contenu personnalisé.
Procédure
-
Créez un analyseur pour le nouveau type de fichier.
HCL Commerce prend en charge des analyseurs supplémentaires pour activer la recherche sur davantage de types de fichiers.
-
Préparez l'extension.
Avant d'implémenter la logique du nouveau type de fichier, les types MIME du nouvel analyseur doivent être sélectionnés.
- Ouvrez le fichier tika-mimetypes.xml. Le fichier se trouve dans le fichier tika-core-0.4.jar, sous org/apache/tika/mime.
- Entrez le type MIME que vous souhaitez implémenter.Par exemple, pour les supports de type
application/vnd.rn-realmedia :
<mime-type type="application/vnd.rn-realmedia">
<magic priority="50">
<match value=".RMF" type="string" offset="0" />
</magic>
<glob pattern="*.rm"/>
</mime-type>
- Trouvez un lecteur qui comprend le format de fichier afin qu'il puisse être analysé avec succès.
- Si l'analyseur doit prendre en charge davantage de types, sélectionnez plus. Ces types MIME sont requis lorsque vous implémentez la logique.
-
Implémentez la logique d'extension.
- Créez une classe qui implémente l'interface
org.apache.tika.parser.Parser. Dans com.ibm.commerce.tika.parser.video.VideoParser.getSupportedTypes(ParseContext), elle doit renvoyer la liste de type de supports pris en charge.Par exemple :
private static final Set<MediaType> SUPPORTED_TYPES =
Collections.unmodifiableSet(new HashSet<MediaType>(Arrays.asList(
MediaType.application("vnd.rn-realmedia"))));
public Set<MediaType> getSupportedTypes(ParseContext context) {
return SUPPORTED_TYPES;
}
Le type de support d'application reçoit la valeur
vnd.rn-realmedia correspondant au type MIME précédemment sélectionné.
com.ibm.commerce.tika.parser.video.VideoParser.parse(InputStream, ContentHandler, Metadata, ParseContext) doit gérer le contenu du support qui se présente en tant que paramètre InputStream. En outre, il doit également gérer le conteneur de métadonnées du support qui se présente en tant que paramètre Metadata.Par exemple :
metadata.set(Metadata.CONTENT_TYPE, "application/vnd.rn-realmedia");
metadata.add(Metadata.PUBLISHER, "Publisher");
metadata.add(Metadata.LANGUAGE, "RM_language");
metadata.add(Metadata.COMPANY, "IBM Commerce");
XHTMLContentHandler xhtml = new XHTMLContentHandler(handler, metadata);
xhtml.startDocument();
xhtml.endDocument();
Lorsque le résultat est renvoyé à partir de cette méthode, les métadonnées peuvent contenir des informations supplémentaires sur l'éditeur, la langue et l'entreprise. Toutefois, aucun contenu n'est extrait.
-
Assemblez la logique et activez HCL Commerce Search pour qu'il la reconnaisse.
Un fichier de registre de service permet d'insérer le nouvel analyseur pour qu'il soit connu au niveau de la structure
HCL Commerce Search.
- Créez le fichier suivant :
- META-INF/services/org.apache.tika.parser.Parser
- Insérez le nom de classe complet de l'analyseur dans le fichier. Par exemple :
com.ibm.commerce.tika.parser.video.VideoParser
- Exportez le code et le fichier de registre dans un fichier JAR et enregistrez-le dans le même répertoire que le fichier tika-parser-version.jar.
-
Confirmez les résultats dans HCL Commerce Search.
HCL Commerce Search trouve automatiquement l'analyseur approprié pour le contenu du fichier. Par exemple, si un fichier realmedia se trouve dans la requête d'extraction, HCL Commerce Search renvoie le résultat de l'analyseur. La cellule Solr utilise le résultat, compose un nouveau document et l'envoie vers serveur de recherche pour créer et mettre à jour des commandes.
Par exemple, vous pouvez vérifier le contenu d'index, où le résultat ressemble au fragment suivant :
content_type:=>application/vnd.rn-realmedia
tika_company:=>IBM Commerce
tika_publisher:=>Publisher
tika_language:=>RM_language
tika_stream_size:=>614135
Que faire ensuite
Après avoir activé la recherche sur davantage de types de contenu non structuré en créant un nouvel analyseur, vous pouvez effectuer une recherche dans la vitrine pour confirmer que les résultats de recherche contiennent vos types de contenu non structuré personnalisé.