クエリ内でブール演算を使用してクエリを渡すことができる方法で、ElasticSearchとNESTでマルチスキャン検索を実行できますか?マルチマッチに渡されたすべての言葉は、デフォルトでORでリンクされているように見えます(これは他の演算子に変更することができます)。クエリでブール演算を使用してマルチスキャンElasticSearchを実行する
私は、ESからクエリからブール演算子を評価したいと思います。 "A & & B || C"と同じ複数のフィールドを検索します。
クエリ内でブール演算を使用してクエリを渡すことができる方法で、ElasticSearchとNESTでマルチスキャン検索を実行できますか?マルチマッチに渡されたすべての言葉は、デフォルトでORでリンクされているように見えます(これは他の演算子に変更することができます)。クエリでブール演算を使用してマルチスキャンElasticSearchを実行する
私は、ESからクエリからブール演算子を評価したいと思います。 "A & & B || C"と同じ複数のフィールドを検索します。
{
"multi_match" : {
"query": "Will Smith",
"type": "best_fields",
"fields": [ "first_name", "last_name" ],
"operator": "and"
}
}
あなたはmulti_match
queryのセマンティクスを変更するoperator
to and
を設定することができます。 NEST
void Main()
{
var pool = new SingleNodeConnectionPool(new Uri("http://localhost:9200"));
var connectionSettings = new ConnectionSettings(pool);
var client = new ElasticClient(connectionSettings);
client.Search<MyDocument>(s => s
.Query (q => q
.MultiMatch(m => m
.Fields(f => f
.Field(p => p.FirstProperty)
.Field(p => p.SecondProperty)
)
.Query("this is the query")
.Operator(Operator.And)
)
)
);
}
public class MyDocument
{
public string FirstProperty { get; set; }
public string SecondProperty { get; set; }
}
との例として次のクエリ
{
"query": {
"multi_match": {
"query": "this is the query",
"operator": "and",
"fields": [
"firstProperty",
"secondProperty"
]
}
}
}
もMultiMatch
query usage docs for NESTを見て生成します。