/ / Solrで特殊文字を検索するにはどうすればよいですか?検索、ソル、特殊文字、ハイライト

Solrで特殊文字を検索するにはどうすればよいですか?検索、ソル、特殊文字、ハイライト

私は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# "、

"C"はこの単語を強調表示し、 "#"は検索と強調表示を行いません。

特殊文字の検索と強調表示を行うにはどうすればよいですか?

回答:

回答№1は1

StandardTokenizerは特殊文字のトークンを分割します。つまり、 # コンテンツを別々のトークンに分割します。最初のトークンは、 C - それは何が強調表示されているのか。あなたはおそらく、Cを検索するだけで、まったく同じ結果になるでしょう。

トークン化プロセスによってトークンが終了します test2 title C .

フィールドタイプにaを使用する WhitespaceTokenizer 空白で分割するだけではおそらくこの正確なユースケースのより良い選択ですが、通常の検索動作に適しているかどうかを判断することはできません(つまり、 "C"と "C-99"などを実際に一致させたい場合は、これらの文字は必要になる可能性があります)しかし、 - 特定のフィールドを強調表示に使用することができ、そのフィールドの分析チェーンを使用して強調表示するものを決定し、元のフィールドとより特定のフィールドの両方を強調表示し、フロントエンドアプリケーションで最良の結果を得てください。