elasticsearch,Lucene,elasticsearch" /> elasticsearch,Lucene,elasticsearch" />

Lucene 查询时忽略的字段

Lucene 查询时忽略的字段,lucene,elasticsearch,Lucene,elasticsearch,我有以下文件 { "authors" : "Nanna Friis", "authorsId" : [ "4642" ], "description" : "Med denne praktiske og pædagogiske håndbog kommer du hele vejen rundt om at skrive godt til nettet. Du bliver taget ved hånden og får en grundig gennemgang af d

我有以下文件

{ 
  "authors" : "Nanna Friis",
  "authorsId" : [ "4642" ],
  "description" : "Med denne praktiske og pædagogiske håndbog kommer du hele vejen     rundt om at skrive godt til nettet. Du bliver taget ved hånden og får en grundig gennemgang af de helt særlige præmisser, der hersker på nettet. ",
  "iSBN" : "9788762904118",
  "mediaType" : "10",
  "name" : "Kort, klart og klikbart",
  "nameSort" : "Kort, klart og klikbart",
  "price" : 250.0,
  "productId" : "9788762904118",
  "publicationAreaCode" : "3077",
  "tags" : [  ],
  "titleId" : "25004"
}
当执行这样的查询时
http://localhost:9200/titles/_search?q=Nanna*
我没有得到任何结果。如果我改为在ie上查询productId,则如下
http://localhost:9200/titles/_search?q=9788762904118
我收到了有问题的文件


发生了什么?

您没有在请求中指定查询字段

在这种情况下,您将搜索

未明确指定要在中搜索的字段时 查询字符串语法,index.query.default_字段将用于 派生要搜索的字段。它默认为_all字段

因此,如果禁用了_all字段,将其更改为set可能是有意义的 不同的默认字段


我不记得曾经更改过默认搜索字段,当然也没有显式地将其设置为productId,这是示例查询匹配的字段。搜索“Kort,klart og klikbart”也会返回此特定文档,因此它似乎知道如何跨字段搜索,而不是“作者”:/这些是精确匹配的示例,如果搜索“Nanna Fris”,我认为它也会找到它。只需确保所有可搜索字段的类型均为string,并具有index analyzed属性,并且您可能还希望使用丹麦词干分析器过滤器。实际上搜索“Nanna Fris”并不会产生这个特定的文档,而是一个具有以下名称值“Festskrift til Orla Fris Jensen”的文档。因此,它也知道如何搜索不完全匹配的内容,只是不在作者字段中:/好的,我将接受这一正确答案,因为它在某种程度上帮助我找到了根本原因。这是在映射中(我最初没有创建),其中authors字段的include_in_all设置设置为false。