Python プログラムの SPARQL クエリで次の行を使用しています。
FILTER regex(?name, "%s", "i" )
(%s
ユーザーが入力した検索テキストはどこにありますか)
?name
またはを?featurename
含む場合にこれを一致させたいのです%s
が、regex() を使用するためのドキュメントやチュートリアルが見つからないようです。合理的と思われるいくつかのことを試しました。
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" )
そして、()
FILTER regex(?name, "%s", "i" ) || regex(?featurename, "%s", "i" )
これを行う正しい方法は何ですか?ありがとう
更新: UNION の使用は機能します。しかし、次のように regex() 部分を繰り返すだけでも機能することがわかりました。
FILTER (regex(?name, "%s", "i") || regex(?featurename, "%s", "i" ))
どちらのソリューションも、同じ文字列のコピーを含む 2 要素のタプルを使用して両方の を埋める必要があるという点で、少し面倒に見えます%s
。