小编ISJ*_*ISJ的帖子

Google App Engine错误:NeedIndexError:找不到匹配的索引

我在使用谷歌的App引擎索引时遇到了麻烦.通过GoogleAppEngineLauncher运行我的应用程序时,该应用程序运行正常.部署应用程序时,我收到以下错误:

NeedIndexError: no matching index found.
The suggested index for this query is:
- kind: Bar
  ancestor: yes
  properties:
  - name: rating
    direction: desc
Run Code Online (Sandbox Code Playgroud)

在这行代码之后生成错误:

 bars = bar_query.fetch(10)
Run Code Online (Sandbox Code Playgroud)

在上面的代码行之前,它显示为:

bar_query = Bar.query(ancestor=guestbook_key(guestbook_name)).order(-Bar.rating)
Run Code Online (Sandbox Code Playgroud)

我的index.yaml文件包含#AUTOGENERATED下面的确切"建议"索引:

- kind: Bar
  ancestor: yes
  properties:
  - name: rating
    direction: desc
Run Code Online (Sandbox Code Playgroud)

我可能错过了什么吗?我删除了index.yaml文件并再次部署了应用程序(通过命令行),并且上传了一个较少的文件 - 所以index.yaml文件就在那里.

一切都在当地很好.我正在研究最新的Mac OSx.用于部署的命令是:

appcfg.py -A app-name --oauth2 update app
Run Code Online (Sandbox Code Playgroud)

我实现的数据存储区基于留言簿教程应用程序.

任何帮助将不胜感激.

编辑:

我的ndb.Model定义如下:

class Bar(ndb.Model):
    content = ndb.StringProperty(indexed=False)
    lat = ndb.FloatProperty(indexed=False)
    lon = ndb.FloatProperty(indexed=False)
    rating = ndb.IntegerProperty(indexed=True)
    url = ndb.TextProperty(indexed=False)
Run Code Online (Sandbox Code Playgroud)

google-app-engine python-2.7 app-engine-ndb google-cloud-datastore

17
推荐指数
3
解决办法
9342
查看次数

int main(); C - 等价的java

我是一名大学生,也是java的新手.去年,第二学期我们用C语言做了一些编程.在真正理解它之前,我测试了很多东西.在CI中,只需要以int main()开头即可开始编码.Java有点混乱.为什么,我"需要"(我不确定我是否必须以这种方式开始)才能开始

public static void main (String[] args)
Run Code Online (Sandbox Code Playgroud)

如果我不打算在我的程序中使用该参数.这个:

public static void main ()
Run Code Online (Sandbox Code Playgroud)

给了我一个错误.我不想读任何论点.

我希望你明白 - 英语不是我的家庭语言.

c java program-entry-point args

3
推荐指数
1
解决办法
4794
查看次数

比较两个字符串

我有以下代码:

    int t = s.length()-1;
    int g = 0;

    for (int i=0; i < s.length(); i++){

        if (s.charAt(i) != h.charAt(t--));
            g++;

    }

    if (g==0)
        return true;

    else 
        return false;
Run Code Online (Sandbox Code Playgroud)

基本上这个代码假设要做的是测试字符串h的inverse是否等于string s,反之亦然.由于某种原因,总会返回"假" - 尽管明显的答案是正确的.

谁能告诉我我的代码有什么问题?

谢谢!

java string reverse

3
推荐指数
1
解决办法
1090
查看次数

Java - 将数组从方法返回到main

如果有人可以帮我解决以下问题,我会很高兴.下面的方法假设返回一个数组,其第i个条目是int i出现在数组a中的次数.方法名称使用此方法.绘制数组a中的数据直方图.

    public static int histogram(int M, int[] a){

        int[] b = new int[M];

        for (int i = 0; i < M; i++){

           int w = 0; 

            for (int j = 0; j < a.length; j++){ 

            if (a[j] == i){ 
            w++;
            }
        }

           b[i] = w; 

     }

   return b; 
}
Run Code Online (Sandbox Code Playgroud)

对我来说代码是正确的 - 它可能是错的 - 我无法测试它,因为我有一个错误,这真的让我烦恼.

Histogram.java:22:找到不兼容的类型:int [] required:int return b;

1)上面的意思是什么?例如在互联网和我的手册中,他们也只使用"返回b;" 将数组返回主程序.

2)返回功能究竟如何工作?我是否可以使用以下代码打印数组b的值?因为此刻我得到一个错误,因为数组b没有在main中初始化...我认为如果错误1被整理出来,错误就会消失.我是JAVA的新手,所以我真的不知道 - 编程新手.

for (int x = 0; x < M; x++){

        System.out.printf("%d ", b[x]);

     }`
Run Code Online (Sandbox Code Playgroud)

3)我是否可以在histogram()方法中打印值?要回答的问题是使用直方图值"返回"数组.

如果你能提供帮助,真的很高兴...... …

java methods return

2
推荐指数
1
解决办法
3万
查看次数

创建n个数组

我想知道如果可能的话,创建一定数量的相同大小的数组.非常感谢帮助.例如:我想创建10个具有相同数量元素的数组,而不必逐个创建它们:int[] a = new int[].希望现在更清楚了.

我在其中一条评论中提出的一个问题是+ - "我如何为列的行/列排序数组行".我想通了 - 也许有人会发现它很有用.

int[] sortarr = new int[5]; //create array to transfer data from row to new array

for (int i=0; i<N; i++){
    for (int j=0; j<5; j++){
    sortarr[j] = hands[i][j]; //transfer the data from 2D array's row to sortarr
    }
    Arrays.sort(sortarr); //sort the row's data

    for (int x=0; x<5; x++){ 
    hands[i][x] = sortarr[x]; //transfer the data back to 2D array
    }

}
Run Code Online (Sandbox Code Playgroud)

也许这很明显,但我希望这会帮助那里的人.

java arrays sorting multidimensional-array

1
推荐指数
1
解决办法
6238
查看次数

递归 - 它做了什么

我的智慧结束了...我理解递归的更简单的例子,但是当它变得棘手时我没有线索.这是一个例子.如果有人能说出它的作用,我会很高兴的.编译器做了什么......

public static char mystery(String s, int n, int m)
{
if (n==1) return s.charAt(m);

char first = mystery(s, n/2, m*2);
char second = mystery(s, n/2, m*2 +1);

System.out.print(first + " " + second + " ");

return first; 
}
Run Code Online (Sandbox Code Playgroud)

调用方法时打印的内容:mystery("fredpass",5,1)

答案是传递

我没有CLUE如何到达那里......

如果有人可以帮我解决这个问题,真的会很感激.在互联网上的其他地方,他们只解释了阶乘 - 简单的例子.不确定如果你char first = mystery ( blah );再次调用它两次会发生什么char second = mystery ( blah );

java recursion

1
推荐指数
2
解决办法
287
查看次数

for loop(记得最后看的地方)&Character.isDigit()

我必须做一个关于元素周期表的项目.我的困境如下.用户会向您发送分子方程式.它可以是任何长度.在这个数组中有大写字母,小写字母和数字.

我也有一个对象数组.每个对象代表元素周期表上的元素.现在我需要打破这个字符串,用户将我发送给更小的片段 - 由对象数组识别的片段.我还必须将答案乘以元素的最后一个字母旁边的数字或数字.

我已经尝试了以下内容.使字符串成为char数组.从后面运行数组 - 测试number(Character.isDigit(a[i]);),测试大写和小写......我总是遇到同样的问题.我不知道字符串会有多长.让我们说我找到一个数字.然后,如果前一个字符是小写字母,我需要另外检查大写字母.然后让我说我有分子方程式和我需要乘以的数量 - 如何让计算机知道从最后一个大写字母开始查看.

我希望有人理解这一点!

真的需要一些帮助.

另一个问题:为什么来这个代码不起作用:

String moleq = "HeKiLH2B6";

char[] a = moleq.toCharArray();
int g = moleq.length()-1;
int x = 1; //if not more than one of element - multiply getWeight by 1

int[][] indexofdigit = new int[moleq.length()][2];
int[] indexoflower = new int[moleq.length()];

for (int i = g; i <= 0; i--){

    if (Character.isDigit(a[i])) {
    String z = Character.toString(a[i]);
    x = Integer.parseInt(z);
    System.out.println("YES");

    }
}
Run Code Online (Sandbox Code Playgroud)

这段代码永远不会打印出来是的?

java for-loop char

0
推荐指数
1
解决办法
770
查看次数