私の正しいインデックスパスはですが、コードヒット数はPOST: /foo/bar/_search
です。ElasticSearch.NET NEST検索 url
var node = new Uri("http://elasticsearch-server.com:9200");
var settings = new ConnectionSettings(node);
settings.DefaultIndex("foo");
var client = new ElasticClient(settings);
var response = client.Search<Bar>(s => s
.Query(q => q.Term(o => o.userName, "test"))
);
// POCO for response fields
public class Bar
{
public int userId { get; set; }
public string userName { get; set; }
public DateTime createdTime { get; set; }
}
上記コードresponse
が返されます。
POSTに成功した低レベルの呼び出しから構築された有効なNEST応答:/ fooの/バー/ _search
私は正確にパスを検索する設定できますか?
試験1
Iはsettings.DefaultIndex("foo");
線を省略した場合、それは以下のようにArgumentException
をスローし、私はDefaultIndex()
を設定すると、Search<T>
は、第二のパスとしてT
名を使用します。
ArgumentException:指定された型のインデックス名がnullであり、既定のインデックスが設定されていません。 ConnectionSettings.MapDefaultTypeIndices()を使用してインデックス名をマッピングするか、ConnectionSettings.DefaultIndex()を使用してデフォルトのインデックスを設定します。
試験2 コード上documentation、
var settings = new ConnectionSettings(node)
.MapDefaultTypeIndices(m => m.Add(typeof(Bar), "foo"));
を参照して対応して同じ結果を返します。
POSTに成功した低レベルの呼び出しから構築された有効なNEST応答:/ fooの/バー/ _search
を無効にするために、検索流暢APIに追加メソッドを呼び出すことができます。このコードスニペットを試してみてください:var settings = new ConnectionSettings(新しいUri( "http://elasticsearch-server.com:9200"))。DefaultIndex( "foo"); var client = new ElasticClient(settings); – Soren
@Soren //ご意見ありがとうございます。うーん...まだ同じ問題があります。 POCO名を第2のパスとして使用します。私はもっと調査する必要があります。 – Youngjae