quickwit-oss / quickwit-oss/quickwit

Provide alternatives to tokenizer drops based on string length.

Open
#5,112 1 comment 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
Rust
Stars
11.7k
Forks
597
Avg merge
2d 22h
Merged PRs (30d)
37

Description

Some json log files have relatively long values embedded in key:value pairs, e.g. Ansible Tower, Azure DevOps Server and Github can all produce data where key:value is greater than 255 characters.

All current tokenizers will drop strings > 255 characters in length. This makes it difficult to import json data with key:value pairs where the value is relatively large compared to the key size.

It would be great if there were an option to do one or more of the following:

  1. Truncate instead of omitting the token. This could result in some odd behaviour, as parts of the token would be indexed, but not all.
  2. If the dataset is json and the token is a key:value pair, tokenize only the key (assuming the key < 255 characters). This would allow for existence tests to be performed on the key, perhaps allowing other search terms to work.
  3. Index the key of a key:value pair and calculate the checksum of the value, then store the checksum as the value. This does change the data somewhat but would permit retrieval of a specific value if the searcher can search for the checksum instead of the string.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No files, tests, or entry points are named. Start by locating the current tokenizers and their 255-character drop behavior, then clarify which proposed handling for long JSON key:value tokens should be implemented. Done should mean the selected behavior is implemented and long JSON values can be imported and searched as specified.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
search
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.