Lucene index: getting empty result while query

前端 未结 1 1098
佛祖请我去吃肉
佛祖请我去吃肉 2021-01-28 10:47

I am trying to query with Lucene index but getting the empty result and below errors in the log,

Traversal query (query without index): select [jcr:path] from [n         


        
相关标签:
1条回答
  • 2021-01-28 11:27

    There are a couple of issues with what you're likely doing. First thing would the error that you're observing. Since you're using InitialContent which provisions an index with type="counter". For that you'd need to have .with(new NodeCounterEditorProvider()) while building the repository. That should avoid the error you are seeing.

    But, your code would likely still not work because lucene indexes are async (which you've correctly configured). Due to that asynchronous behavior, you can't query immediately after adding the node. I tried your code but had to add something like Thread.sleep(10*1000) before going for querying.

    As another side-note, I'd recommend that you try out IndexDefinitionBuilder to make lucene index structure. So, you could replace Tree index = root.getTree("/");

    Tree t = index.addChild("oak:index");
    
    t = t.addChild("lucene");
    t.setProperty("jcr:primaryType", "oak:QueryIndexDefinition", Type.NAME);
    t.setProperty("compatVersion", Long.valueOf(2L), Type.LONG);
    t.setProperty("type", "lucene", Type.STRING);
    t.setProperty("async", "async", Type.STRING);
    
    t = t.addChild("indexRules");
    t = t.addChild("nt:base");
    Tree propnode = t.addChild("properties");
    Tree t1 = propnode.addChild("name");
    t1.setProperty("name", "name");
    t1.setProperty("propertyIndex", Boolean.valueOf(true), Type.BOOLEAN);
    root.commit();
    

    with

    IndexDefinitionBuilder idxBuilder = new IndexDefinitionBuilder();
    idxBuilder.indexRule("nt:base").property("name").propertyIndex();
    idxBuilder.build(root.getTree("/").addChild("oak:index").addChild("lucene"));
    root.commit();
    

    The latter approach, imo, is less error prone and more redabale.

    0 讨论(0)
提交回复
热议问题