假设我有一个带有以下映射的索引:
Can't find file file.jpg
我索引一个简单的文档,如下所示:
PUT my_index
{
"mappings": {
"my_type": {
"properties": {
"full_text": {
"type": "string"
},
"exact_value": {
"type": "string",
"index": "not_analyzed"
}
}
}
}
}
我想要的是创建一个可以逻辑表达的查询:
PUT my_index/my_type/1
{
"full_text": "This is the city where I live",
"exact_value": "MILAN"
}
但我想在查询上下文中搜索full_text:CONTAINS('live') OR exact_value:CONTAINS('MILAN')
,而在过滤器上下文中搜索full_text
我尝试了以下查询,但它不起作用(用ROME替换MILAN是证明)
exact_value
提前致谢
答案 0 :(得分:0)
我会试试这个:
POST my_index/_search
{
"query": {
"bool": {
"filter": {
"or": [
{
"term": {
"exact_value": "MILAN"
}
},
{
"term": {
"full_text": "live"
}
}
]
}
}
}
}
但是,如果您想使用过滤器,请注意您不会得分。 这意味着搜索“live OR MILAN”将产生与“live OR ROMA”和“live”完全相同的响应
实际包含“live或MILAN”的文档可能不在第一位置
答案 1 :(得分:0)
尝试使用它:
<!-- Use whatever control you want here, or a separate resources
file if you want to share across controls -->
<Window.Resources>
<ContextMenu x:Key="MyMenu" DataContext="{Binding Path=PlacementTarget.Tag,RelativeSource={RelativeSource Self}}">
<MenuItem Header="Open" Command="{Binding MenuDelegateCommand}"
IsEnabled="{Binding Path=OpenEnabled}"
CommandParameter="{Binding RelativeSource={RelativeSource Self}, Path=Header}" />
<Separator />
<MenuItem Header="Blah Attributes">
<MenuItem Header="Properties" Command="{Binding MenuDelegateCommand}"
IsEnabled="{Binding Path=OpenEnabled}"
CommandParameter="{Binding RelativeSource={RelativeSource Self}, Path=Header}" />
</ContextMenu>
......
</Window.Resources>
答案 2 :(得分:0)
我找到了可以使用Java API构建的解决方案
{
"query" : {
"bool" : {
"should" : [ {
"bool" : {
"filter" : {
"term" : {
"exact_value" : "MILAN"
}
}
}
}, {
"query_string" : {
"query" : "live",
"fields" : [ "full_text" ]
}
} ]
}
}
}