Skip to main content
Ayase Quart supports multiple search methods: vanilla database search, indexed search engines, and custom search plugins. Vanilla search queries the database directly without an index. Best for smaller archives or when you don’t want to run a separate search service.
enabled
boolean
default:"true"
Enable vanilla database search
highlight
boolean
default:"false"
Highlight matching terms in search results
hits_per_page
integer
default:"50"
Number of results per page
max_hits
integer
default:"1000"
Maximum total results to return (with underscores: 1_000)
Allow searching across multiple boards simultaneously
[vanilla_search]
enabled = true
highlight = false
hits_per_page = 50
max_hits = 1_000
multi_board_search = false
Vanilla search may be slow on large archives. Consider using indexed search for better performance.
Indexed search uses a dedicated search engine for fast full-text search. Supports Lnx, Meilisearch, and Typesense.

Base configuration

enabled
boolean
default:"true"
Enable indexed search
highlight
boolean
default:"false"
Highlight matching terms in search results
hits_per_page
integer
default:"50"
Number of results per page
max_hits
integer
default:"1000"
Maximum total results to return (with underscores: 1_000)
provider
string
default:"lnx"
required
Search engine providerOptions:
  • lnx
  • meili (Meilisearch)
  • typesense
host
string
default:"http://localhost:8000"
required
Search engine host URL. Should be a LAN IP address (e.g., 192.168.1.122) rather than localhost or a domain name for better performance.
headers
object
required
HTTP headers for search engine API requests, including authentication.Example:
headers = { content-type = 'application/json', Authorization = 'password' }
version
string
default:"1"
API version (only matters for Quickwit)
multi_board_search
boolean
default:"true"
Allow searching across multiple boards simultaneously
[index_search]
enabled = true
highlight = false
hits_per_page = 50
max_hits = 1_000
provider = 'lnx'
host = 'http://192.168.1.122:8000'
headers = { content-type = 'application/json', Authorization = 'your-api-key' }
version = '1'
multi_board_search = true

Lnx configuration

Lnx is a fast, embeddable full-text search engine. The [index_search.lnx] section provides Lnx-specific settings.
max_concurrency
integer
default:"4"
Maximum concurrent search queries. Good range: 4-16.
  • Lower values (4-8): Better for larger datasets, prevents I/O and lock contention
  • Higher values (12-16): Better for scaling requests/second on smaller datasets
reader_threads
integer
default:"8"
Number of reader threads. Set to number of vCPUs available.
writer_threads
integer
default:"8"
Number of writer threads. Set to number of vCPUs available.
writer_buffer
integer
default:"2147483648"
Bytes in write buffer before mandatory block compaction and disk flush. Default is 2GB (2_147_483_648). Plan for extra memory overhead.
  • 256MB: 268_435_456
  • 512MB: 536_870_912
  • 1GB: 1_073_741_824
  • 2GB: 2_147_483_648 (default)
[index_search.lnx]
max_concurrency = 4
reader_threads = 8
writer_threads = 8
writer_buffer = 2_147_483_648  # 2GB
For large archives (millions of posts):
max_concurrency = 4
reader_threads = 16
writer_threads = 8
writer_buffer = 4_294_967_296  # 4GB
For high request rates:
max_concurrency = 12
reader_threads = 16
writer_threads = 8
writer_buffer = 1_073_741_824  # 1GB
For resource-constrained systems:
max_concurrency = 2
reader_threads = 4
writer_threads = 4
writer_buffer = 268_435_456  # 256MB

Search engine comparison

Lnx is a Rust-based embeddable search engine.Pros:
  • Fast and lightweight
  • Low resource usage
  • Easy to deploy
  • Good for medium-sized archives
Cons:
  • Less feature-rich than alternatives
  • Smaller community
[index_search]
provider = 'lnx'
host = 'http://192.168.1.122:8000'
headers = { content-type = 'application/json', Authorization = 'password' }

Search plugins

Custom search plugins can extend or replace built-in search functionality.
enabled
boolean
default:"false"
Enable loading search plugins from the plugins directory
[search_plugins]
enabled = false
Search plugins allow custom search implementations. Documentation for creating plugins is in development.

Configuration examples

[vanilla_search]
enabled = true
highlight = true
hits_per_page = 50
max_hits = 1_000
multi_board_search = true

[index_search]
enabled = false

Search strategies

Recommendation: Vanilla search or Lnx
[vanilla_search]
enabled = true
multi_board_search = true
Vanilla search is sufficient for small archives and requires no additional services.
Recommendation: Lnx
[index_search]
enabled = true
provider = 'lnx'
host = 'http://192.168.1.122:8000'

[index_search.lnx]
max_concurrency = 6
reader_threads = 12
writer_threads = 8
writer_buffer = 2_147_483_648
Recommendation: Meilisearch or Typesense
[index_search]
enabled = true
provider = 'meili'
host = 'http://192.168.1.122:7700'
hits_per_page = 100
max_hits = 10_000
Dedicated search engines provide better performance and features for large datasets.
Recommendation: Meilisearch or Typesense with vanilla fallback
[vanilla_search]
enabled = true  # Fallback

[index_search]
enabled = true
provider = 'meili'
multi_board_search = true
Keep vanilla search enabled as a fallback if the index service is unavailable.

Troubleshooting

  • Verify search engine is running and accessible
  • Check host URL is correct
  • Ensure authentication headers are valid
  • Confirm index has been populated with data
  • Review search engine logs for errors
  • Use LAN IP address instead of localhost or domain name
  • Check firewall rules allow connections
  • Verify port is correct
  • Test connectivity: curl http://192.168.1.122:8000
  • For Lnx: Increase max_concurrency and thread counts
  • Check database/index server resource usage (CPU, memory, disk I/O)
  • Consider increasing hits_per_page to reduce pagination
  • Review query complexity and optimize
  • Reduce writer_buffer size
  • Decrease writer_threads
  • Lower max_concurrency
  • Consider switching to Meilisearch or Typesense for very large datasets

Build docs developers (and LLMs) love