Question

J'ai une table MySQL:

CREATE TABLE documents (
    id INT NOT NULL AUTO_INCREMENT,
    language_code CHAR(2),
    tags CHAR(30),
    text TEXT,
    PRIMARY KEY (id)
);

J'ai 2 questions sur Solr DIH:

1) Le champ langauge_code indique quelle langue le champ text est. Et selon la langue, je veux index text à différents champs Solr.

# pseudo code

if langauge_code == "en":
    index "text" to Solr field "text_en"
elif langauge_code == "fr":
    index "text" to Solr field "text_fr"
elif langauge_code == "zh":
    index "text" to Solr field "text_zh"
...

Can usecase gérer un DIH comme celui-ci? Comment puis-je configurer pour le faire?

2) Le champ tags doit être indexé dans un champ de multiValued Solr. Plusieurs valeurs sont stockées dans une chaîne, séparés par une virgule. Par exemple, si tags contient la chaîne "blue, green, yellow" je veux indexer les 3 valeurs "blue", "green", "yellow" dans un champ Solr Multivalued.

Comment puis-je faire avec DIH?

Merci.

Était-ce utile?

La solution

Premiers vos besoins de schéma pour permettre avec quelque chose comme ceci:

<dynamicField name="text_*" type="string" indexed="true" stored="true" />

Alors dans votre config quelque chose comme ceci DIH:

<entity name="document" dataSource="ds1" transformer="script:ftextLang" query="SELECT * FROM documents" />

Avec le script étant défini juste en dessous du point d'émission:

<script><![CDATA[
  function ftextLang(row){
     var name = row.get('language_code');
     var value = row.get('text');
     row.put('text_'+name, value); return row;
  }
]]></script>

Autres conseils

Je suis désolé, je n'ai pas une réponse directe à votre question de DIH, mais il serait intéressant de savoir.

J'ai remarqué votre code de langue à 2 lettres et suggérer une fente de 5 lettres. Certaines langues ont des différences de dialecte qui ne sont pas négligeables. Par exemple, le chinois simplifié par rapport chinois traditionnel. Pour l'analyse morphologique, le filtre SmartCN peut gérer zh-CN, mais pas zh-tw, etc.

portugais et espagnol sont aussi des langues où nous avons été mis en garde contre le mélange tous les dialectes ensemble, bien que les différences sont moins drastiques, et les deux seraient toujours consultables.

Bien sûr, vous avez sans doute déjà connu cela, et n'a tout simplement pas l'ajouter à la question de rester simple. Il est juste un sujet très frais dans mon esprit.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top