Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Elasticsearch:专门搜索括号内的单词_Search_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Escaping_Character - Fatal编程技术网 elasticsearch,escaping,character,Search,elasticsearch,Escaping,Character" /> elasticsearch,escaping,character,Search,elasticsearch,Escaping,Character" />

Elasticsearch:专门搜索括号内的单词

Elasticsearch:专门搜索括号内的单词,search,elasticsearch,escaping,character,Search,elasticsearch,Escaping,Character,我试图对括号内的名字进行弹性搜索。我正在使用一个姓名数据库,其中一些姓名在“名字”字段中包含处女姓名。少女的名字用括号表示,如“萨曼莎[Murray]”。我的客户希望我们的“精确搜索”功能能够发挥作用,这样,如果你搜索“Murray”,你只会得到名为Murray的结果,不包括处女姓名;但是如果你搜索“[Murray]”,你会得到处女的名字而不是名字=Murray,即搜索“Murray”>>“Murray Smith”而不是“Samantha[Murray]Jones”,搜索“[Murray]”>

我试图对括号内的名字进行弹性搜索。我正在使用一个姓名数据库,其中一些姓名在“名字”字段中包含处女姓名。少女的名字用括号表示,如“萨曼莎[Murray]”。我的客户希望我们的“精确搜索”功能能够发挥作用,这样,如果你搜索“Murray”,你只会得到名为Murray的结果,不包括处女姓名;但是如果你搜索“[Murray]”,你会得到处女的名字而不是名字=Murray,即搜索“Murray”>>“Murray Smith”而不是“Samantha[Murray]Jones”,搜索“[Murray]”>>反之亦然

到目前为止,我的问题是弹性搜索似乎完全忽略了括号。这是我的疑问

{
  "query": {
      "filtered": {
          "query": {
              "bool": {
                  "must": [
                      {
                          "query_string": {
                              "default_field" : "first_name",
                              "query" : "\\[Murray\\]"
                          }
                      }
                  ]
              }
          }
      }
  }
}
但我得到的结果和我对“查询”的结果一样:“Murray”没有括号。我尝试了一个regexp,但结果更糟,我得到的名字甚至不接近“Murray”(我得到了“Rogers”之类的名字)


这种类型的请求在Elastic中是否可行?如果是,我需要更改什么?

熟悉分析仪-

如果您使用的是默认值,那么您的分析器可能正在剥离括号。
如果您想通过分析器进行搜索,则需要定义一个不删除括号的分析器。

我认为“\[”是在逃避反斜杠,而不使用括号。那么“[”呢?这会导致错误,因为[是弹性搜索中的一个特殊字符