1

NEST+ElasticSearch を使用すると、特別なエンコードが必要な文字が適切に処理されていないのではないかと思われます。例: これは結果を返しません

var results = 
client.Search<MyClass>(s => s.Query(q => q.Term(t => t.ProgrammingLanguage, "C#")));

ただし、「C#」を「Ruby」などに置き換えると正常に動作します。インデックスを見ると、両方の検索結果があるはずです。

既知の問題? 回避策はありますか?

4

1 に答える 1

2

これはエンコーディングの問題ではありませんが、多かれ少なかれ lucene とプロキシによる Elasticsearch がどのように機能するかです。

デフォルトのアナライザーは単語を分割するため、C# は単に 'c' になります。キーワード アナライザーのようなものを使用して、フィールド データがそのまま保存されるように、elasticsearch アナライザーを調べます。

詳細については、 http://www.elasticsearch.org/guide/reference/index-modules/analysis/を参照してください

于 2013-04-25T13:23:08.780 に答える