quickwit-oss / quickwit-oss/quickwit
Provide alternatives to tokenizer drops based on string length.
Nobody has claimed this yet.
- 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:
- Truncate instead of omitting the token. This could result in some odd behaviour, as parts of the token would be indexed, but not all.
- 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.
- 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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