Suche von mehreren Begriffen

cancel
Showing results for 
Search instead for 
Did you mean: 
dmc
Active Member

Suche von mehreren Begriffen

Hallo,

bei der Verwendung der Alfrescosuche ist mir eine kleine Unebenheit aufgefallen.

Wenn ich nach zwei Begriffen suche, werden diese üblicherweise nur zusammen gesucht - es werden mir also alle Dokumente angezeigt in denen beide Begriffe vorkommen.

Bei Alfresco werden alle Dokumente gesucht in denen einer der beiden Begriffe vorkommt. Man kann die Suchfunktion mit dem Operator "+" zwar dazu bringen nur Dokumente mit beiden Begriffen zu zeigen, jedoch denke ich dass unsere User diese Art eher ablehnen werden.

Gibt es eine Möglichkeit Alfresco so zu konfigurieren, dass automatisch nur nach Dokumenten gesucht wird in denen beide Begriffe vorkommen?

Vielen Dank im Voraus

LG
Nils
4 Replies
dmc
Active Member

Re: Suche von mehreren Begriffen

Hallo Spaceman,

leider befindet sich der Aufbau des Suchbegriffs in Alfresco im Quellcode (org.alfresco.web.bean.SearchContext), kann also über die Konfiguration nicht verändert werden.

Eine Möglichkeit ist es nichtsdestotrotz, über einen Aspekt den Suchbegriff zu ändern. Dazu muss die Bean mit dem Namen SearchService in einem eigenen (Spring-)Kontext neu definiert werden und ein Advisor (Implementierung von org.springframework.aop.Advisor) eingeschaltet werden, der wiederum auf eine Implementierung von org.springframework.aop.AfterAdvice verweist. Das klingt nicht nur kompliziert, sondern benötigt auch ein Verständnis für die Art und Weise, wie in Spring Aspekte in POJOs (Plain Old Java Objects) verwoben werden.

Es wäre unter Umständen interessant, wenn jemand im Forum darüber ein kleines Tutorial erstellen könnte…

Hier mal fragmentarisch Beispielcode für die Konfiguration:
<bean id="SearchService" class="org.springframework.aop.framework.ProxyFactoryBean">
   …
   <property name="interceptorNames">
      <list>
         <value>searchAdvisor</value>
         …
      </list>
   …
</bean>

<bean id="searchAdvisor" class="org.springframework.aop.support.RegexpMethodPointcutAdvisor">
   <property name="advice" ref="searchAfterAdvice" />
   <property name="patterns">
      <list>
         <value>.*</value>
      </list>
   </property>
</bean>

<bean id="searchAfterAdvice" class="<Implementierung eines AfterAdvices>" />
Grüße
drhilarius
dmc
Active Member

Re: Suche von mehreren Begriffen

Hallo drhilarius,

vielen Dank für die Antwort!
Leider muss ich gestehen, dass mir das doch noch etwas sehr fremd klingt und ich schließe mich der Bitte nach einem Tutorial mal an

Viele Grüße
Nils
Mit Zitat antworten
dmc
Active Member

Re: Suche von mehreren Begriffen

Es mag jetzt vielleicht etwas einfach klingen aber ich habe in der Version 2.9 Lab in der web-client-config.xml einen Eintrag gefunden:

<search-and-terms>false</search-and-terms>

Wenn man diesen Wert auf true setzt, stellt sich das von mir gewünschte Verhalten ein. Kann das jemand bestätigen oder habe ich da jetzt nur einige Zufallstreffer gelandet?

LG und schönes Wochenende
Nils
dmc
Active Member

Re: Suche von mehreren Begriffen

Es mag jetzt vielleicht etwas einfach klingen aber ich habe in der Version 2.9 Lab in der web-client-config.xml einen Eintrag gefunden:

<search-and-terms>false</search-and-terms>
Hi Nils,

eine UND- oder ODER-Semantik scheint über die Konfiguration tatsächlich zu funktionieren, auch schon in Alfresco 2.0. Hier ist ein entsprechender Thread im englischen Alfresco-Forum.

Grüße
drhilarius