2016-05-26 9 views
1

Leider haben wir einen speziellen Ordner namens "_archive" in unserem Repository überall. Dieser Ordner hat seinen Zweck. Aber: Bei der Suche nach Inhalten/Dokumenten möchten wir sie und alle Inhalte unter "_archive" ausschließen.einen bestimmten Pfad von allen Benutzersuchen ausschließen

Also, was ich will ist, den Pfad und sein Mitglied von allen Benutzersuchen auszuschließen. Syntax ist einfach, mit fts:

your_query AND -PATH:"//cm:_archive//*" 

zu testen: https://www.docdroid.net/RmKj9gB/search-test.pdf.html die pdf nehmen, nimm sie auf die Repo zweimal:

  • /some_random_path/search-test.pdf
  • /some_random_path/_Archiv/search-test.pdf

In Knoten-Browser alles wie erwartet funktioniert:

TEXT:"HODOR" AND -PATH:"//cm:_archive//*" 
= 1 result 

TEXT:"HODOR" 
= 2 results 

So, das war meine Idee search.get.config.xml und fügen Sie den Ausschluss der Liste der Eigenschaften zu bearbeiten:

<search> 
    <default-operator>AND</default-operator> 
    <default-query-template>%(cm:name cm:title cm:description ia:whatEvent 
     ia:descriptionEvent lnk:title lnk:description TEXT TAG) AND -PATH:"//cm:_archive//*" 
    </default-query-template> 
</search> 

Aber es funktioniert nicht wie beabsichtigt! Sobald ich 'text:' oder 'name:' im Suchfeld verwende, scheint der Ausschluss ignoriert zu werden.

Welche andere Option habe ich? Im Grunde möchten Sie den Ausschluss nur zur Basisabfrage hinzufügen, nachdem die Standardabfragevorlage verwendet wurde.

Version ist Alfresco Community 5.0.d

Dank!

+0

Ich hatte immer Leistungsprobleme bei der Verwendung von PATH-Abfragen, nicht wahr?Wie groß ist dein Repo, circa? – Lista

+0

Das Wiki sagt, dass die Suche langsam werden kann und Sie vielleicht die Cache-Größe erhöhen möchten. aber ich hatte noch kein Problem damit. Ich führe dies in einer Entwicklungsumgebung mit 5 GB Inhalt – user1429166

Antwort

3

Ich denke, Sie sind falsch, was Abfragevorlagen gemeint sind. Werfen Sie einen Blick auf die Wiki.

Also, was Sie im Grunde tun, ist programmatisch sagen, ich habe ein Schlüsselwort und ich möchte die Schlüsselwörter zu den folgenden Metadatenfelder übereinstimmen.

Standard passt auf sie cm: Name cm: Titel cm: Beschreibung usw. Dies kann zu einem benutzerdefinierten Feld oder in anderen Fällen zu ALL geändert werden.

Also eine zusätzliche AND oder hier von was auch immer nicht arbeiten, da dies nicht die eigentliche Abfrage ist, die gebaut wird. Ich kann mehr über die Abfragevorlagen erfahren, aber das bringt Ihnen nichts.

In Ihrem Fall müssen Sie die search.get WebScript von Alfresco und die Methode aufgerufen Funktion getSearchResults (params) in search.lib.js ändern (was importiert werden wird).

Irgendwo am Ende des Verfahrens in den folgenden tun:

ftsQuery = '(' + ftsQuery + ') AND -TYPE:"cm:thumbnail" AND -TYPE:"cm:failedThumbnail" AND -TYPE:"cm:rating" AND -TYPE:"st:site"' + ' AND -ASPECT:"st:siteContainer" AND -ASPECT:"sys:hidden" AND -cm:creator:system AND -QNAME:comment\\-*'; 

Fügen Sie einfach Ihren Weg, um es abzufragen und das tun wird.

+1

Ich benutze 5.0.d Community - ich habe nicht die erwähnte Methode in search.get.js – user1429166

+0

Die Methode ist in search.lib.js, die search.get. js macht einen Import. –

+0

An welcher Version arbeiten Sie? Sind Sie sicher, dass dies für 5.0.d funktioniert? – user1429166

Verwandte Themen