/ / Як я можу шукати спеціальні символи в Solr - search, solr, special-characters, highlight

Як я можу шукати спеціальні символи в Solr - search, solr, special-characters, highlight

Я використовую Solr 6.6.2

Мені потрібно шукати спеціальні символи і виділити його в Solr,

Але це не спрацьовує

мої дані:

[
{
"id" : "test1",
"title" : "test1# title C# ",
"dynamic_s": 5
},
{
"id" : "test2",
"title" : "test2 title C#",
"dynamic_s": 10
},
{
"id" : "test3",
"title" : "test3 title",
"dynamic_s": 0
}
]

Коли я шукаю "C #",

Тоді це буде просто відповідь, як це "test1 # title С# ",

Це просто висвітлює "C" це слово ... і "#" не буде шукати і висвітлювати.

Як зробити пошук та виділити роботу для спеціальних символів?

Відповіді:

1 для відповіді № 1

StandardTokenizer розбиває токени на спеціальні символи, що означає, що # буде розбити вміст на окремі токени - перший токен буде C - і це те, що підкреслюється. Ви, ймовірно, отримаєте точно той же результат, якщо просто шукатимете C.

Процес токенування призведе до того, що ваш жетони закінчуються test2 title C .

Використовуйте тип поля з a WhitespaceTokenizer що тільки розбивається на пробіл, ймовірно, буде акращий вибір для цього конкретного випадку використання, але неможливо сказати, що це буде добре підходить для вашого звичайного поведінки пошуку (тобто, якщо ви дійсно хочете, щоб "C" відповідав "C-99" і т. д., розбившись на ці символи можуть знадобитися). Але - ви можете використовувати певне поле для виділення, і це ланцюжок аналізу полів буде використовуватися для визначення того, що потрібно виділити. І ви можете попросити виділити як оригінальне, так і більш конкретне поле, і потім використовуйте найкращий результат у вашому інтерфейсі програми.