Character Mapping [LUCENE-7321]
- Dominant language
- Java
- Stars
- 3.6k
- Forks
- 1.4k
- Avg merge
- 2d 11h
- Merged PRs (30d)
- 88
Description
One of the challenges in search is recall of an item with a common typing variant. These cases can be as simple as lower/upper case in most languages, accented characters, or more complex morphological phenomena like prefix omitting, or constructing a character with some combining mark. This component addresses the cases, which are not covered by ASCII folding component, or more complex to design with other tools. The idea is that a linguist could provide the mappings in a tab-delimited file, which then can be directly used by Solr.
The mappings are maintained in the tab-delimited file, which could be just a copy paste from Excel spreadsheet. This gives the linguists the opportunity to create the mappings, then for the developer to include them in Solr configuration. There are a few cases, when the mappings grow complex, where some additional debugging may be required. The mappings can contain any sequence of characters to any other sequence of characters.
Some of the cases I discuss in detail document are handling the voiced vowels for Japanese; common typing substitutions for Korean, Russian, Polish; transliteration for Polish, Arabic; prefix removal for Arabic; suffix folding for Japanese. In the appendix, I give an example of implementing a Russian light weight stemmer using this component.
---
Migrated from [LUCENE-7321](https://issues.apache.org/jira/browse/LUCENE-7321) by Ivan Provalov, 2 votes, updated Jun 03 2021
Attachments: [CharacterMappingComponent.pdf](https://apache.github.io/lucene-jira-archive/attachments/LUCENE-7321/CharacterMappingComponent.pdf), [LUCENE-7321.patch](https://apache.github.io/lucene-jira-archive/attachments/LUCENE-7321/LUCENE-7321.patch)
Contributor guide
Research direction
Start by reading CharacterMappingComponent.pdf and the attached LUCENE-7321.patch to understand the proposed mapping format and scope. Compare the proposal with the current Lucene and Solr search-component structure; done means tab-delimited mappings can support arbitrary character-sequence substitutions and be used through Solr configuration, including the language cases described.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- search
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100