Solr/Lucene でテキスト列にインデックスを付けてLIKE '%foo%
、最適な一致が最初に来る SQL のように動作させる最良の方法は何ですか? 私の場合の「ベスト」とは、最初に完全に一致し、次に余分な文字が少なくなる前に余分な文字が増えることを意味します。例えば
「1234」を検索すると返されます
- 1234
- 12345 (1 文字追加)
- 01234
- 123456 (2 文字追加)
- 001234567890
- 等
私がこれまでに試したこととうまくいかないこと (列は としてマップされますtext_en_splitting
)
- 検索
1234
-> 完全一致のみ - 検索
*1234*
-> すべてを検索しますが、完全一致のスコアは高くなりません - search for
1234~
-> は 12345 に一致しますが、完全一致のスコアは高くなりません。「001234567890」のような長い文字列には一致しません。