/ / Jak mogę wyszukiwać znaki specjalne w Solr - szukaj, solr, znaki specjalne, podświetl

Jak mogę szukać znaków specjalnych w Solr - szukaj, solr, znaki specjalne, zaznacz

Jestem używany Solr 6.6.2

Muszę przeszukać znaki specjalne i zaznaczyć je w Solr,

Ale to nie działa,

moje dane :

[
{
"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
}
]

Kiedy szukam „C #”,

To po prostu odpowie tak, jak ten tytuł „test1 # do# ”,

Podkreśla tylko „C” to słowo… a „#” nie będzie wyszukiwać i wyróżniać.

Jak sprawić, by wyszukiwanie i wyróżnianie działały dla znaków specjalnych?

Odpowiedzi:

1 dla odpowiedzi № 1

StandardTokenizer dzieli tokeny na znaki specjalne, co oznacza, że # podzieli zawartość na osobne tokeny - pierwszy będzie C - i to właśnie jest wyróżniane. Prawdopodobnie uzyskasz dokładnie ten sam wynik, jeśli po prostu szukasz C.

Proces tokenizacji sprawi, że twoje tokeny staną się test2 title C .

Używanie typu pola za pomocą WhitespaceTokenizer że tylko podział na białe znaki prawdopodobnie będzielepszy wybór dla tego konkretnego przypadku użycia, ale nie można powiedzieć, czy to będzie dobre dopasowanie do Twojego regularnego wyszukiwania (tj. jeśli naprawdę chcesz dopasować „C” do „C-99” itp., dzieląc według te znaki mogą być potrzebne). Ale - możesz użyć określonego pola do wyróżnienia, a ten łańcuch analizy pól zostanie użyty do określenia, co należy wyróżnić. Możesz też poprosić o wyróżnienie zarówno pola oryginalnego, jak i bardziej szczegółowego, oraz następnie użyj najlepszego wyniku w aplikacji frontendowej.