Filter 不区分大小写的openlayers筛选器不工作

Filter 不区分大小写的openlayers筛选器不工作,filter,openlayers,case-insensitive,geoserver,Filter,Openlayers,Case Insensitive,Geoserver,我在openlayers 2.13中有以下过滤器 var filter_c = new OpenLayers.Filter.Comparison({ type: OpenLayers.Filter.Comparison.LIKE, property: 'strToLowerCase(p_name)', value: '%'+String(document.getElementById("nm").value).toLowerCase()+'%' }); //pass t

我在openlayers 2.13中有以下过滤器

var filter_c = new OpenLayers.Filter.Comparison({
    type: OpenLayers.Filter.Comparison.LIKE,
    property: 'strToLowerCase(p_name)',
    value: '%'+String(document.getElementById("nm").value).toLowerCase()+'%'
});

//pass the filter to the layer
var prot =  new OpenLayers.Protocol.WFS({
    url:  "/geoserver/wfs",
    featureType: "pins",
    featureNS: "http://www.mysite.gr",
    defaultFilter: filter_cl
});

var _CallBack = function(resp) {
    pins.addFeatures(resp.features)
    var cb = pins.features.length;
    if (cb == 0){alert("Nothing Found");}
};

var response = prot.read({callback: _CallBack});


//refresh to render POIs
pins.refresh({force:true});
我还使用Geoserver 2.1.3和PostgreSQL 9.1/PostGIS 2.0

此筛选器区分大小写如何使此筛选器不区分大小写?

pins
层从postgreSQL/PostGIS中的表中获取数据。名称用UTF8表示,是希腊语单词,如
κρόπολη
παρθενώνας

我只是简单地将它设置为
pins=newopenlayers.Layer.Vector(“LayerTitle”,“renderers:[“Canvas”,“SVG”,“VML”]})
,我有前面提到的代码来搜索它


当我使用过滤器时,我没有收到
未找到任何东西
警报,但我在地图上看不到任何点,地图在中心100%缩放。所以,这种过滤器是有效的。我遗漏了什么?

您在OpenLayers中传递的参数被发送到GeoServer,因此查询是由GeoServer而不是OpenLayers进行的

您需要查看Geoserver文档,了解它如何进行不区分大小写的查询。请参阅
matchCase
属性可能会有所帮助