Jive Forums API (5.5.20.2-oracle) Developer Javadocs

com.jivesoftware.profiles.search
Interface ProfileSearchManager

All Known Implementing Classes:
ProfileSearchManagerImpl

public interface ProfileSearchManager

Manages the search feature of Jive Expert User Search by defining properties of the search indexer. Indexing can either be done real-time by calling addToIndex(...) every time a new object is created, or by running the indexer in timed update mode. The latter mode is preferable since it allows for faster object posting.

The automated updating mode can be adjusted by setting how often batch indexing is done. You can adjust this interval to suit your needs. Frequent updates mean that entries/comments will be searchable more quickly. Less frequent updates use fewer system resources.

If you are not using the Jive Expert User Search system at all (for example, if you have your own search technology that you'd rather use), you should disable the search feature entirely.

The following Jive properties correspond to the profile search manager settings:


Method Summary
 void addToIndex(User user)
          Adds an individual user to the index.
 int getAutoIndexInterval()
          Returns the number of minutes that the indexer waits between each update.
 int getCurrentCount()
          Returns the number of entries that have been indexed if an indexing operation is currently active (i.e., isBusy() returns true).
 java.util.Date getLastIndexedDate()
          Returns the date that the last update to the index was made.
 int getPercentComplete()
          Returns the percent complete that an indexing operation is if an indexing operation is currently active (i.e., isBusy() returns true).
 int getTotalCount()
          Returns the total number of entries that are to be indexed if an indexing operation is currently active (i.e., isBusy() returns true).
 boolean isAutoIndexEnabled()
          Returns true if auto indexing is turned on.
 boolean isBusy()
          Returns true if the search manager is currently busy with an search indexing task.
 boolean isEmailVisible()
          Determines whether or not user email addresses are visible when performing a user search.
 boolean isSearchEnabled()
          Returns true if the profile search feature is turned on.
 void optimize()
          Optimizes the underlying search index for maximum speed.
 void rebuildIndex()
          Manually rebuild the entire index.
 void removeFromIndex(User user)
          Removes an individual user from the index.
 org.apache.lucene.search.Hits search(ProfileSearchQuery query)
          Returns the hits that correspond to the search query.
 void setAutoIndexEnabled(boolean value)
          Enables or disables auto indexing.
 void setAutoIndexInterval(int minutes)
          Sets the number of minutes that indexer should wait between updating the index.
 void setEmailVisible(boolean emailVisible)
          Determines whether or not user email addresses are visible when performing a user search.
 void setSearchEnabled(boolean searchEnabled)
          Enables or disables the profile search feature.
 void updateIndex()
          Manually update the index to include all new objects since the last update.
 

Method Detail

isSearchEnabled

boolean isSearchEnabled()
Returns true if the profile search feature is turned on. When profile search is disabled, other methods serve as no-ops and auto indexing will not occur.

Returns:
true if the search is enabled.

setSearchEnabled

void setSearchEnabled(boolean searchEnabled)
Enables or disables the profile search feature. When profile search is disabled, other methods serve as no-ops and auto indexing will not occur.

Parameters:
searchEnabled - true to enable the search feature, false to disable.

isEmailVisible

boolean isEmailVisible()
Determines whether or not user email addresses are visible when performing a user search. If emailVisible is set to false, email addresses will not be displayed on the user search results page, regardless of the user's personal emailVisible setting. If emailVisible is true then email addresses will be displayed only for user's with their personal emailVisible setting equal to true. EmailVisible is true by default.


setEmailVisible

void setEmailVisible(boolean emailVisible)
Determines whether or not user email addresses are visible when performing a user search. If emailVisible is set to false, email addresses will not be displayed on the user search results page, regardless of the user's personal emailVisible setting. If emailVisible is true then email addresses will be displayed only for user's with their personal emailVisible setting equal to true. EmailVisible is true by default.

Parameters:
emailVisible - true if user email addresses are visible, false otherwise.

search

org.apache.lucene.search.Hits search(ProfileSearchQuery query)
Returns the hits that correspond to the search query.

Parameters:
query - the profile search query
Returns:
the users that match the search criteria.

isBusy

boolean isBusy()
Returns true if the search manager is currently busy with an search indexing task. When busy, calls to index operations such as rebuildIndex() will do nothing. If you'd like to query the status of the indexing operation while the manager is busy, use the getPercentComplete() method.

Returns:
true if the search manager is currently busy with an index maintenance task.

getPercentComplete

int getPercentComplete()
Returns the percent complete that an indexing operation is if an indexing operation is currently active (i.e., isBusy() returns true). Valid percentages returned are from 0 to 100. If no indexing operation is active, this method will return -1.

Returns:
the percent complete that the currently active index operation is.

getTotalCount

int getTotalCount()
Returns the total number of entries that are to be indexed if an indexing operation is currently active (i.e., isBusy() returns true).

Returns:
the total number of entries that are to be indexed

getCurrentCount

int getCurrentCount()
Returns the number of entries that have been indexed if an indexing operation is currently active (i.e., isBusy() returns true).

Returns:
the number of entries that have been indexed

isAutoIndexEnabled

boolean isAutoIndexEnabled()
Returns true if auto indexing is turned on. When auto indexing is on, it will update the search index at the interval specified by the setUpdateInterval method.

Returns:
true if auto indexing is turned on.

setAutoIndexEnabled

void setAutoIndexEnabled(boolean value)
Enables or disables auto indexing. When auto indexing is on, it will update the search index at the interval specified by the setUpdateInterval method.

Parameters:
value - true to turn auto indexing on, false to turn it off.

getAutoIndexInterval

int getAutoIndexInterval()
Returns the number of minutes that the indexer waits between each update.

Returns:
the number of minutes between automatic index updates.

setAutoIndexInterval

void setAutoIndexInterval(int minutes)
Sets the number of minutes that indexer should wait between updating the index.

Parameters:
minutes - the number of minutes between automatic index updates.

getLastIndexedDate

java.util.Date getLastIndexedDate()
Returns the date that the last update to the index was made.

Returns:
the date the last index update was made.

addToIndex

void addToIndex(User user)
Adds an individual user to the index. This method is useful for doing real-time indexing. However, for maximum posting speed this method can be ignored. In that case, the automatic indexer will pick up all new entries at the next index interval.

Parameters:
user - the user to add to the index.

removeFromIndex

void removeFromIndex(User user)
Removes an individual user from the index.

Parameters:
user - the user to remove from the index.

updateIndex

void updateIndex()
Manually update the index to include all new objects since the last update.


rebuildIndex

void rebuildIndex()
Manually rebuild the entire index. This operation can be slow if the index is large.


optimize

void optimize()
Optimizes the underlying search index for maximum speed. This operation may be CPU intensive so should be performed relatively infrequently. Rebuilding an index should automatically optimize it.


Jive Forums Project Page

Copyright © 1999-2006 Jive Software.