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

Search & Browse

Status Status of the Search & Browse process is visible on the Status Page. For more information, see View Server Process Status
Logging Logs generated by the Search & Browse process are located in C:\ProgramData\Tableau\Tableau Server\data\tabsvc\logs\searchserver. 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.

Thanks for your feedback!Your feedback has been successfully submitted. Thank you!