我有一个multi_match类型的查询cross_fields,我希望通过前缀匹配来改进.
{
"index": "companies",
"size": 25,
"from": 0,
"body": {
"_source": {
"include": [
"name",
"address"
]
},
"query": {
"filtered": {
"query": {
"multi_match": {
"type": "cross_fields",
"query": "Google",
"operator": "and",
"fields": [
"name",
"address"
]
}
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
它完全匹配查询,如google mountain view.该filtered阵列是存在的,因为我需要动态地添加地理过滤器.
{
"id": 1,
"name": "Google",
"address": "Mountain View"
}
Run Code Online (Sandbox Code Playgroud)
现在我想允许前缀匹配,而不会破坏cross_fields.
这些查询应匹配:
googgoogle mountgoogle mountain vimountain view goo如果我更改multi_match.type为phrase_prefix …
我有两个查询执行相同的操作。1
SELECT *
FROM "Products_product"
WHERE ("Products_product"."id" IN
(SELECT U0."product_id"
FROM "Products_purchase" U0
WHERE (U0."state" = 1
AND U0."user_id" = 5))
AND "Products_product"."state" IN (1,
6,
3)
AND UPPER("Products_product"."title" :: TEXT) LIKE UPPER('%toronto%'))
ORDER BY "Products_product"."title_index" ASC
LIMIT 10;
Run Code Online (Sandbox Code Playgroud)
2
SELECT *
FROM "Products_product"
WHERE ("Products_product"."id" = ANY (ARRAY(
(SELECT U0."product_id"
FROM "Products_purchase" U0
WHERE (U0."state" = 1
AND U0."user_id" = 5))))
AND "Products_product"."state" IN (1,
6,
3)
AND UPPER("Products_product"."title" :: TEXT) LIKE UPPER('%toronto%'))
ORDER BY "Products_product"."title_index" ASC
LIMIT 10; …Run Code Online (Sandbox Code Playgroud) 我正在评估 PlantUML 是否可以成为 GraphViz 的良好替代品。
它被宣传为“直观”,但老实说,主页上的第一个示例已经令人困惑。
为什么下面会创建两次“Bob”和“Alice”?我在文本中看到 2 个节点,在输出中看到 4 个节点。此外,箭头不是在节点之间移动,而是在节点的重复项之间的关系之间移动。
Bob->Alice : hello
Run Code Online (Sandbox Code Playgroud)
这对我来说毫无意义。这个示例的含义是什么?如果是一个只有 2 个节点且它们之间有一个箭头的更简单的示例,会是什么?
当我FirstOrDefault()在整数或布尔值的空列表上使用时,我得到0orfalse而不是null。
我知道这是设计使然,因为它会返回default(T),但我如何强制它返回呢null?
var emptyList = new List<int>();
emptyList.FirstOrDefault() == 0; // I want to receive null instead
Run Code Online (Sandbox Code Playgroud)