champ de recherche

Bonjour, avec studio je fabrique une content view pour un formulaire de recherche avancée. J'aimerai savoir si un champ texte pour permettre une recherche sur deux metadonnées différentes. Si oui comment faire ? Faut il fabriquer un widget spécifique ? Merci d'avance de votre aide.

0 votes

2 answers

1145 views

ANSWER



Bonjour,

Si je comprends bien, il vous faudrait sur une seul champ de recherche accéder à plusieurs métadonnées.

La meilleure solution est probablement de rajouter un index qui contiennent uniquement les informations de ces 2 métadonnées, comme ça vous pourrez l'utilisez comme un index full text classique mais qui ne pointera que sur ces 2 métadonnées.

Voici quelques pistes pour vous aider a faire tout ça :

Vous pouvez définir un nouvel index fulltext dans la configuration de votre repository, voir http://doc.nuxeo.com/x/hwQz

Vous pouvez également utiliser un template de configuration pour déployer proprement votre conf : http://doc.nuxeo.com/x/0AB9

Une fois la conf déployée, vous pourrez tester qu'elle fonctionne en faisant la requête à la main dans la recherche avancée. Puis pour l'utiliser dans une content view, il vous faudra utiliser le widget “generic search” (dans les advanced widgets) poour pouvoir référencer votre index custom.

1 votes



Bonjour, alors j'ai créé un index fulltext dans le fichier default-repository-config.xml que j'ai placé dans /templates/custom de mon serveur (j'avais déjà des fichiers dans custom pour mon paramétrage ldap). Mes index sont donc définis comme suit :

 <indexing>
      <fulltext analyzer="english">
        <index name="default">
          <!-- all props implied -->
        </index>
        <index name="title">
          <field>dc:title</field>
        </index>
        <index name="description">
          <field>dc:description</field>
        </index>
        <index name="title_subject">
          <field>dc:title</field>
          <field>dc:subjects</field>
        </index>
      </fulltext>
    </indexing>

mon nouvel index s'appelle donc “title_subject”.

Par contre, vous me dites de le tester en premier lieu dans une requete à la main, mais comment appelle t'on cet aindex ? j'ai testé : select * from Document where title_subject LIKE '%test%'

mais ça ne fonctionne pas : Failed to execute query: No such property: title_subject

Ensuite, comment appeler cet index dans studio ? Le widget type est bien text ? Merci de votre aide

0 votes



la doc pour la requete: http://doc.nuxeo.com/x/ggU7 dans Studio, il existe un widget "generic search" dans les advanced widget (en bas a droite)
08/30/2013

ok, I try select * from Document where ecm:fulltext_titles = '%test%'

and <indexing>

    &lt;includedTypes&gt;
        &lt;type&gt;Document marché&lt;/type&gt;
        &lt;type&gt;Compte rendu&lt;/type&gt;
        &lt;type&gt;Document pédagogique&lt;/type&gt;
        &lt;type&gt;Document ISAE&lt;/type&gt;
        &lt;type&gt;Convention&lt;/type&gt;
        &lt;type&gt;conv&lt;/type&gt;

    &lt;/includedTypes&gt;
    &lt;excludedTypes&gt;
        &lt;type&gt;Root&lt;/type&gt;
        &lt;type&gt;Workspace&lt;/type&gt;
        &lt;type&gt;Note&lt;/type&gt;
        &lt;type&gt;Section&lt;/type&gt;
    &lt;/excludedTypes&gt;

      &lt;fulltext analyzer=&quot;english&quot;&gt;
        &lt;index name=&quot;default&quot;&gt;
          &lt;!-- all props implied --&gt;
        &lt;/index&gt;
        &lt;index name=&quot;title&quot;&gt;
          &lt;field&gt;dc:title&lt;/field&gt;
        &lt;/index&gt;
        &lt;index name=&quot;description&quot;&gt;
          &lt;field&gt;dc:description&lt;/field&gt;
        &lt;/index&gt;
        &lt;index name=&quot;titles&quot;&gt;
          &lt;field&gt;dc:title&lt;/field&gt;
        &lt;/index&gt;
      &lt;/fulltext&gt;
    &lt;/indexing&gt;

The result give me a document (tyope Note) but not my custom document type (like Convention) and it give me so a section otherwise I exclude this document type. What have I do wrong ?

09/02/2013

In fact this works fine. thanks you for your help !!
09/04/2013