Tableau Server Search and Browse
Note: Starting in version 2023.3, Search and Browse is retired (no longer installed). It is replaced by the Index and Search Server.
Starting in version 2022.3, Search and Browse is deprecated (installed but no longer used by Tableau Server). If you are running Tableau Server version 2022.3 or 2023.1, you should not configure more than one instance of Search and Browse for any installation. Configuring more than one instance can, in rare cases, result in stability issues.
The Search & Browse process, based on Apache SOLR (in Tableau Server versions 2020.4 and earlier) and also known as searchserver, handles fast search, filter, retrieval, and display of content metadata on your Tableau Server site. To configure high availability for the Search & Browse process, configure the process on multiple nodes. Starting in Tableau Server version 2021.1, the functionality of the Search and Browse process is enhanced by the Content Exploration Service. For more information, see Tableau Server Content Exploration Service
Process |
|
Status | Status of the |
Logging | Logs generated by the . For more information, see Tableau Server Logs and Log File Locations |
What happens if a Search & Browse process fails? Users can still sign in to Tableau Server, but workbook content will appear to be missing. The content is not actually missing. Rather, the content is not being returned in the search results; it will be displayed again after the Search and Browse process restarts.
If more than one Search & Browse process is configured and running on multiple nodes when the failure occurs, requests made to a failed Search & Browse process will also fail, but subsequent requests will be routed to working Search & Browse processes. Each Search & Browse process indexes across all nodes in the cluster, therefore if all but one Search & Browse process fails, results will still be returned across all nodes.
Tuning the Search & Browse Process
There are several ways you can change how the Search & Browse process works in Tableau Server. In most cases you should not need to change anything, but here are some configuration changes you can make.
Search & Browse Max Heap Memory
You can configure Search & Browse options using the searchserver.javamemopts
configuration key. The most important setting you can configure is the one controlling how large the maximum heap memory should be and specified by the -Xmx
option. By default this is set by Tableau, based on the available physical memory for the server node running the Search & Browse service. The value should be set as high as possible, based on available physical memory and memory usage, but no higher than 24 GB.
When changing the amount of max heap memory, you need to take into account any other services on the system. If you're running low on memory on the computer running Tableau Server, you should consider adding more memory, or scaling down the topology on the machine. If you are running Search & Browse on a node with few other processes, or with a large amount of physical memory, you can consider increasing the amount used by the search service. If you are running Search & Browse on a node with more than the default number of processes, you should consider decreasing the maximum heap memory allocation to avoid having the service attempt to use more memory than is available.
Default maximum heap memory allocations
The table below shows the default amount of heap memory Tableau allocates to Search & Browse on a server node, based on available memory:
System memory | SOLR heap memory |
---|---|
<= 16 GB | 1 GB |
<= 32 GB | 2 GB |
<= 64 GB | 4 GB |
<= 128 GB | 8 GB |
> 128 GB | 16 GB |
To change the value of max heap memory, set the -Xmx
value of searchserver.javamemopts
using the tsm configuration set
command.
First get the current values:
C:\WINDOWS\system32>tsm configuration get -k searchserver.javamemopts -Xmx512m -Xms512m -XX:+ExitOnOutOfMemoryError -XX:-UsePerfData
Next, change the value of the -Xmx
option. Include but do not change all other options:
tsm configuration set -k searchserver.javamemopts -v "-Xmx8g -Xms512m -XX:+ExitOnOutOfMemoryError -XX:-UsePerfData"
For more details about the searchserver.javamemopts
configuration key, see searchserver.javamemopts.
Client session timeouts
You can configure how long Search & Browse clients will wait to establish a connection to the Search & Browse server, and to Coordination Service (Zookeeper). Both timeout values are set to a relatively high value, but if you experience issues browsing to server content, and vizportal and backgrounder logs show timeouts connecting to SOLR, try increasing these settings. If this has no impact, you may be running into limited resources on the Tableau Server computer.
searchserver.connection_timeout_milliseconds
searchserver.zookeeper_session_timeout_milliseconds
To change the values use the tsm configuration set
command:
tsm configuration set -k searchserver.connection_timeout_milliseconds -v
For more details about the searchserver.connection_timeout_milliseconds
configuration key, see searchserver.connection_timeout_milliseconds.
Zookeeper connection health check timeout at startup
When Tableau Server is starting, resource usage is high, especially related to CPU usage. If Search & Browse does not make a connection to Coordination Service (zookeeper), it will fail to start. To account for this, Tableau Server performs a health check on the Coordination Service before starting Search & Browse.
If your Tableau Server computer is especially busy, or if Search & Browse fails to start, increase this timeout value.
An error is written to the control-searchserver.log files when this health check fails: Failed zookeeper health check. Refusing to start SOLR.
To increase the amount of time Tableau Server waits for a successful health check, set the value of searchserver.startup.zookeeper_healthcheck_timeout_ms
using the tsm configuration set
command.
tsm configuration set -k searchserver.startup.zookeeper_healthcheck_timeout_ms -v <nnnnnn>
For more details about the searchserver.startup.zookeeper_healthcheck_timeout_ms
configuration key, see searchserver.startup.zookeeper_healthcheck_timeout_ms.