Basic Searching

Sie können für die Suche den Mindbreeze Web Client verwenden oder die SDK Schnittstelle, um Suchergebnisse in eine eigene Anwendung einzubetten. Das Mindbreeze SearchService bietet Zugriff auf Suchresultate, deren Eigenschaften, Facetten und Did you mean-Vorschläge. Selbstverständlich werden die Suchresultate autorisiert und es stehen auch unterschiedliche Methoden zur Authentifizierung bereit. Das Mindbreeze Client Service stellt das SearchService zur Verfügung. Das bedeutet, dass die Konfiguration des Client Service auch die SDK-Schnittstelle beeinflusst.
Das SDK-Beispiel enthält eine JSP-Anwendung, die das SearchService verwendet. Um die Anwendung auszuführen, starten Sie den Apache Tomcat Server in eclipse.

Start Tomcat

Öffnen Sie in einem Browser die URL http://localhost:8080/search/search.jsp und starten Sie die Suche.

Search Results

In der Datei search.jsp wird ein SearchRequest aufgebaut, der dann an das SearchService gesendet wird. Ein minimaler SearchRequest kann so aussehen:

QueryExpr query = 
QueryExpr.newBuilder().setKind(QueryExpr.Kind.EXPR_UNPARSED).setUnparsedExpr
("user query").build();

SearchRequest searchRequest = SearchRequest.newBuilder()
  .setRankingStrategy(RankingStrategy.RANK)
  .setDetailLimit(DetailLimit.CONTENT)
  .setUserQuery(query)
  .addView(View.newBuilder()
    .setId("view")
    .setCount(10)
    .setRankingStrategy(mindbreeze.query.ViewProtos.View.RankingStrategy.RELEVANCE)
  )
  .build();

Der SearchRequest wird mit SearchServiceClient().performSearch ausgeführt. Die Methode performSearch liefert als Ergebnis ein SearchResponse-Objekt, das die Resultate, Facetten und Did you mean-Vorschläge enthält.

SearchResponse searchResponse = new SearchServiceClient(endpoint)
  .performSearch(request.getServletContext(), searchRequest);

Für jede bei der Suche definierte View enthält das SearchResponse-Objekt ein ResultSet. Jedes ResultSet enhält Result-Objekten für die Resultate. Die Eigenschaften des Resultats sind mit getPropertyList() zugreifbar. So können Sie den Titel und den Inhalt ausgeben:

ResultSet resultSet = searchResponse.getResultSet(0);
<% for (Result result : resultSet.getResultList()) {%>
  <% Map<String, NamedValue> properties = PropertyHelper.asMap(result.getPropertyList()); %>
  <div class="result">
    <h2><%= PropertyHelper.getSampleText(properties.get("title")) %></h2>
    <p>
      <%= PropertyHelper.getSampleText(properties.get("content")) %>
    </p>
  </div>
<% } %>

Authentication possibilities

There are 3 user login possibilities available: Kerberos, SAML and Trusted Peer Authentication. Please see the respective handbooks for the configuration of the individual variations.
For Kerberos and SAML ticket and assertion is used directly for the authentication of a user.
Trusted Peer Authentication conversely allows a service user to login who can then specify which user is logged in. Therefore this variation is necessary if a service cannot forward tickets/assertions. Here you have to be careful with the confidential handling of the used certificates so that no user can see another user’s data. The document Trusted Peer Authentication offers information on this.

Download

Zugang zum Mindbreeze InSpire SDK Download-Bereich.


*
*
*