示例#1
0
def getDocuments(ism, isle, storageId, locationId):
    iss = IndexSearchConstraint(None,None)
    iss.constrainByIsland(isle)
    iss.constrainByStorageIds([Long(storageId)])
    iss.setShardConstraint(locationId)
    iss.setOutputFields(['*'])
    qr = ism.search('',iss, None, CallerApp.INTERNAL)
    results = []
    for doc in qr:
        results.append(doc)
    return results
示例#2
0
def search(isle, term):
    mc = ManagementContainer.getInstance()
    sm = mc.getIndexSearchManager()
    im = mc.getIslandManager()
    pm = mc.getPartitionManager()

    fIS = IndexSearchConstraint(None, None)
    fIS.constrainByIsland(isle)
    fIS.constrainByNumberOfHitsToReturn(10)
    fIS.constrainByMinimumStorageId(0)
    fIS.setOutputFields(["storageid", "partitionid"])
    fIS.sortBy("storageid", True)

    done = False
    cnt = 0
    lastID = 0
    while not done:
        ok = False
        while not ok:
            try:
                fQR = sm.search(term, fIS, None, CallerApp.INTERNAL)
                ok = True
            except Throwable, t:
                print "Exception caught during search, retry = true", t
                t.printStackTrace()

        numDocs = fQR.getDocCount()
        print "Found numDocs", numDocs

        done = fQR.getDocCount() == 0

        print "Preview some data"
        for doc in fQR.documents():
            # print doc.getPartitionID(),pm.getPartition(doc.getPartitionID()).isReadOnly(),doc.getStorageID(),doc.getReceivedDate()
            print doc.getPartitionID(), doc.getStorageID()
            lastID = doc.getStorageID()
            cnt += 1
        fIS.constrainByMinimumStorageId(lastID)

        # just loop once
        done = True