Elasticsearch版本:7.1.1
嗨,我做了很多尝试,但是在索引中找不到任何解决方案,我有一个包含字符串的字段。
因此,例如,我有两个文档,它们在locations数组中包含不同的值。
文件1:
"doc" : {
"locations" : [
"Cloppenburg",
"Berlin"
]
}
文件2:
"doc" : {
"locations" : [
"Landkreis Cloppenburg",
"Berlin"
]
}
用户请求搜索术语 克洛彭堡, 而我只想返回那些包含术语 克洛彭堡 而不是 Landkreis Cloppenburg的
文档。结果应仅包含 Document-1 。但是我的查询返回了两个文档。
我正在使用以下查询,并同时获取两个文档。有人可以帮我吗
GET /my_index/_search
{
"query": {
"bool": {
"must": [
{
"match": {
"doc.locations": {
"query": "cloppenburg",
"operator": "and"
}
}
}
]
}
}
}
问题是由于您正在使用该text
字段和match
查询。
对匹配查询进行分析,并使用与索引时使用的搜索词相同的分析器,对于字段,这是标准分析器text
。在您的情况下,如果在空白处打断文本,Landkreis Cloppenburg
将创建两个标记landkreis
,cloppenburg
同时创建索引和搜索时间,甚至cloppenburg
匹配文档。
解决方案:使用keyword field
。
索引定义
{
"mappings": {
"properties": {
"location": {
"type": "keyword"
}
}
}
}
为两个文档建立索引,然后使用相同的搜索查询
{
"query": {
"bool": {
"must": [
{
"match": {
"location": {
"query": "Cloppenburg"
}
}
}
]
}
}
}
结果
"hits": [
{
"_index": "location",
"_type": "_doc",
"_id": "2",
"_score": 0.6931471,
"_source": {
"location": "Cloppenburg"
}
}
]
问题内容: 如何搜索以关键字开头的字符串数组? 例如, 当我的搜索字符串必须显示时 当我的搜索字符串是那么。 问题答案: 交换为您只希望寻找遏制。
问题内容: 我想在文档中搜索“社交网络营销”。全部一起。但是我继续得到结果,单词分开。我有以下DSL查询: 我没有包含此短语和标题的文档,但是我也得到了包含短语单词的搜索结果(文档)以进行拆分。我要严格搜索。如果没有任何文档使用此短语,则不要检索任何文档或仅检索具有该标题的文档。为什么 运算符又 不起作用? 问题答案: 您可以使用类型词组尝试以下方法吗?看到这里说, 查询首先分析查询字符串以生成术
本文向大家介绍在Java中搜索字符串中的字符。,包括了在Java中搜索字符串中的字符。的使用技巧和注意事项,需要的朋友参考一下 您可以使用String类的方法在字符串中搜索特定字母。此方法返回字符串中单词的位置索引(如果找到)。否则返回-1。 示例 输出结果
问题内容: 我对ES还是相当陌生,并正在将其用于我的新项目。首先,我为客户提供了一个简单的映射,其中包含名字和姓氏以及付款信息对象列表。如果我在SQL中执行此操作,那将类似于客户表和具有1:许多关系的付款信息表。 这是我要执行的操作的一个简单示例:https : //gist.github.com/anonymous/6109593 我希望根据payInfos嵌套数组中的任何匹配项找到任何客户,即
尝试使用通配符进入和弹性搜索精确短语搜索时遇到问题query_string。 希望能够返回结果,这将是所有变体的精确短语。i、 e.“库尔斯酿酒厂”、“库尔斯酿酒厂”、“库尔斯酿酒厂”等。 我不同意这种方法,但想搜索大部分文档以找到匹配的1或2个字段。
问题内容: 我正在尝试在mysql中搜索字符串的完全匹配。字符串为“ nrew”。但是当我执行下面的查询时,我仍然得到结果: 请帮忙。 问题答案: