Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.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
Indexing 在NoTy-分析字段的中间搜索_Indexing_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Analyzer - Fatal编程技术网 elasticsearch,analyzer,Indexing,elasticsearch,Analyzer" /> elasticsearch,analyzer,Indexing,elasticsearch,Analyzer" />

Indexing 在NoTy-分析字段的中间搜索

Indexing 在NoTy-分析字段的中间搜索,indexing,elasticsearch,analyzer,Indexing,elasticsearch,Analyzer,我有一个Elasticsearch索引,其中一个字段标记为not_Analysis。此字段包含一个以空格分隔的值列表,如下所示: Value1 Value2 Value3 现在,我想执行搜索以查找此字段包含“Value2”的文档。我已经测试过使用文本短语前缀进行搜索,但对“Value2”的搜索与任何内容都不匹配。另一方面,搜索“Value1”或“Value1 Value2”匹配。我不希望在搜索中有任何模糊性,只希望精确匹配(这就是字段设置为“未分析”的原因) 有没有办法进行这样的搜索 根据我对

我有一个Elasticsearch索引,其中一个字段标记为not_Analysis。此字段包含一个以空格分隔的值列表,如下所示:

Value1 Value2 Value3
现在,我想执行搜索以查找此字段包含“Value2”的文档。我已经测试过使用文本短语前缀进行搜索,但对“Value2”的搜索与任何内容都不匹配。另一方面,搜索“Value1”或“Value1 Value2”匹配。我不希望在搜索中有任何模糊性,只希望精确匹配(这就是字段设置为“未分析”的原因)

有没有办法进行这样的搜索


根据我对Elasticsearch的有限理解,我猜我需要将字段设置为使用空白分析器进行分析。是这样吗?

正确,使用
标准
空白
分析器将单词分解成块,按空格、逗号等分割。然后,查询将匹配“Value2”,无论其在文档字段中的位置如何


Standard Analyzer也会将您的字段小写,这意味着只有小写的搜索词才会匹配。

您可以使用通配符执行此操作,但这将是一个昂贵的查询。 您可能必须将“lowercase_expanded_terms”设置为false才能进行匹配

当您搜索“Value2”并使用通配符时,在lucene解析之后,搜索将被解释为“Value2”

查询字符串:Value2*->ES解释值2*

请注意,它将搜索小写,这对分析字段很有用,但在未分析的字段中,您将没有匹配项(如果原始值为大写)

小写的\u扩展的\u术语阻止了这种情况的发生

现在,如果字段没有像您所说的那样进行分析,那么下面的查询应该与您的文档相匹配

    {          
      "size": 10,          
      "query": {
        "query_string": {    
          "query": "title:*Value2*"              
        }
      }
    }
很抱歉回答得很糟糕