如何在弹性搜索中忽略未映射的字段?

时间:2018-06-07 13:48:06

标签: elasticsearch

我需要帮助才能正确设置Elastich搜索。

我在wordpress中安装了Elasticpress,并使用bitnami将弹性服务器设置在Google云端。我的主题默认搜索有自己的搜索,我在Elasticpress调试模式中收到此错误:

No mapping found for [meta._iwj_featured_date.l­ong]

为了排序,我从this guide:

找到了以下解决方案
GET /_search
{
    "sort" : [
        { "price" : {"missing" : "_last"} }
    ],
    "query" : {
        "term" : { "product" : "chocolate" }
    }
}

但是我需要把这段代码放在哪里?

1 个答案:

答案 0 :(得分:0)

隐藏的Meta(自定义字段)是以_(下划线)开头的字段。 Elasticpress默认不会映射它们。要绕过这个过滤器。 将此添加到您的functions.php

#----------------
# Make dimensions
#----------------
t <- ncdim_def("TSTEP","",c(1:25),unlim = T)
d <- ncdim_def("DATE-TIME","",c(1:2))
z <- ncdim_def("LAY","",1)
v <- ncdim_def("VAR","",c(1:96))
y <- ncdim_def("ROW","",c(1:122)) #[sROW:eROW])
x <- ncdim_def("COL","",c(1:127))
#---------
# Make var
#---------
var_temp <- ncvar_def( "VAR1","", t)
#---------------------
# Make new output file
#---------------------
output_fname <- 'test.nc'
ncnew <- nc_create( output_fname, var_temp)
#-------------------------------
# Put some test data in the file
#-------------------------------
varp2 <- ncvar_def("VAR2","",list(d,z,v,y,x))
ncnew <- ncvar_add(ncnew,varp2)

var_dim1 <- list(d,v,t)
var1 <- ncvar_def("TFLAG","",var_dim1,prec = "integer")
ncnew <- ncvar_add(ncnew,var1)

var_dim <- list(x,y,z,t)
var <- ncvar_def("ACROLEIN","",var_dim)
ncnew <- ncvar_add(ncnew,var)

然后从elasticpress界面重新索引站点。 您的meta将被映射。现在您可以对其进行排序了。