我有以下查询接收变量private class ProcessImageLocally extends AsyncTask<ImageItem, Void, ImageItem>{ //+++++++++++++++++++++++++++++++++++++++
public AsyncReponseForImageItem response = null;
@Override
protected void onPreExecute() {
localProcessBegin(); //Process data locally
}
@Override
protected ImageItem doInBackground(ImageItem... params) {
//**************processing locally*****************
try {
Bitmap bm = BitmapFactory.decodeFile(params[0].getBitmapPath());
Bitmap croppedBitmap = getBitmap(getApplicationContext(), INPUT_SIZE, bm);
final List<Classifier.Recognition> results = classifier.recognizeImage(croppedBitmap);
String resultStr = results.toString();
String trimResult = resultStr.substring(resultStr.indexOf("[")+1,resultStr.indexOf("]")).trim();
String localId = params[0].getId();
trimResult = trimResult.substring(0,trimResult.indexOf(")")) + " likely)";
Bitmap thumbnail = getBitmap(getApplicationContext(), 50, bm);
ImageItem tmp = new ImageItem(localId, imgToString(thumbnail), trimResult);
return tmp; //Skip to the outside return
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(ImageItem imageItem) {
response.asyncFinish(imageItem);
}
}
。目前,我正在根据其$tag
的值过滤结果。 frontmatter.keywords
是逗号分隔的字符串,因此我需要使用正则表达式来检查其中是否包含keywords
,但是我无法确定如何将变量传递到正则表达式。如果我将值硬编码到正则表达式中(如下面的代码,我有硬编码$tag
,则过滤有效。如果我将/example/
替换为example
,我会收到错误:
GraphQLError:Variable&#34; $ tag&#34;从未在操作中使用&#34; TagQuery&#34;。
$tag
我应该如何在正则表达式中使用export const pageQuery = graphql`
query TagQuery($tag: String) {
allMarkdownRemark(
limit: 100
sort: { fields: [frontmatter___date], order: DESC }
filter: { frontmatter: { keywords: { regex: "/example/" } } }
) {
totalCount
edges {
node {
fields {
slug
}
excerpt
frontmatter {
title
keywords
date
}
}
}
}
}
`;
?
我实际上更喜欢采用不同的方法并将标记添加为$tag
中的数组,但似乎没有任何基于数组值的过滤方法
答案 0 :(得分:3)
我最终将标签拆分为数组,然后使用以下内容进行过滤:
filter: { fields: { tags: { in: [$tag] } } }
答案 1 :(得分:0)
无论您传递的是$ tag,只需将其转换为
const $tag = "\/".concat(tag).concat("\/")
但是您的错误专门指向您的查询根本没有使用变量的事实。所以您还需要做
filter: { frontmatter: { keywords: { regex: $tag } } }