2016-11-23 6 views
0

私はElasticsearch 5.0.1を使用していますが、.NET 4.5.2でコードを実行しています。私はNEST 5.0 rc libを使用しています。Elasticsearch基準内の文字列のリストを使用したクエリ。 Nest 5.x

私は文字列のリストを含むクラスを持っています。

public List<string> LastPagesViewed { get; set; } 

私はこのような自動マップを使用して、そのCLASEをマッピングしています:

.Mappings(m => m.Map<VisitorTest>(map => map.AutoMap())) 

私が何をしたいのか「LastPagesViewed」プロパティ上の1つのまたは複数のURLが含まれているすべての文書を照会することです。

.Query(q => q 
.Terms(c => c 
    .Name("named_query") 
    .Field(p => p.LastPagesViewed) 
    .Terms(new List<string> { "url1", "url2" })) 

をしかし、それが動作していません。

は、私はこのような検索をしています。私はまた、 "google"(URLがhttp://www.google.comの場合)のようなURLの一部だけを検索しようとしましたが、同じ結果になりました。

私はintsのリスト(URLの代わりに)でこれを試しました。それは動作していますので、ここでは何が欠けていますか?

答えて

0

最後にそれを得ました。問題は、用語検索を使用するときにアナライザの影響を考慮しなかったことです。一致を使用するようにクエリを変更すると、すべて期待どおりに動作します。

新しいクエリは次のようになります。

.Query(q => q.Match(mq => mq.Field(p => p.LastPagesViewed.First()).Query("http://www.google.com"))) 
関連する問題