:SPARQL regex() içinde mantıksal OR nasıl kullanılır?
FILTER regex(?name, "%s", "i")
Bunu eşleştirmek istediğiniz
(%s
kullanıcı tarafından girilen arama metni olduğu) ?name
veya ?featurename
ya eğer %s
içeriyor, ancak regex() kullanmak için herhangi bir belge veya öğretici bulamıyorum. Bunu yapmak için doğru yolu nedir ()
FILTER regex(?name, "%s", "i") || regex(?featurename, "%s", "i")
olmadan
FILTER regex((?name | ?featurename), "%s", "i")
FILTER regex((?name || ?featurename), "%s", "i")
FILTER regex((?name OR ?featurename), "%s", "i")
FILTER regex((?name, ?featurename), "%s", "i")
ve bunların her biri: Ben makul görünüyordu birkaç şey denedik? Teşekkürler
GÜNCELLEME: UNION kullanımı.
FILTER (regex(?name, "%s", "i") || regex(?featurename, "%s", "i"))
Her iki çözümleri bu biraz pis bir görünmek aynı dize kopyaları ile 2 öğeli tuple kullanmak zorunda: Ama sadece bu yüzden gibi regex() bölümünü tekrarlamak eğer o da işe yaradığını anladım %s
s'yi doldurmak için