Exemple #1
0
    HEGGQUERY
add_query (HEGGQUERY eggQuery, char* field, char* key)
{
    HEGGQUERY new_query = NULL;

    if(!strcmp(field, "keywords"))
    {
        new_query = eggQuery_new_string("title", key,strlen(key),ANALYZER_CWSLEX);
        HEGGQUERY new_query_two = NULL;
        if(!strcmp(G->op, "search"))
        {

            new_query_two = eggQuery_new_string("content", key,strlen(key),ANALYZER_CWSLEX);
        }
        else
        {
            new_query_two = eggQuery_new_string("content_index", key,strlen(key),ANALYZER_CWSLEX);
        }

        new_query = eggQuery_or(new_query,new_query_two);
    }

 
    if(!strcmp(field, "category"))
    {

        new_query = eggQuery_new_string("category", key, strlen(key), NULL);

/*
        if(!strcmp(G->op, "search"))
        {
            // char* key_with_space = addSpace(key,30);
            new_query = eggQuery_new_string("category", key, strlen(key), NULL);
           // free(key_with_space);        
        }
        else
        {
            new_query = eggQuery_new_string("category", key, strlen(key), NULL);
        }
*/
    }


    if(new_query != NULL)  
    {
        if(eggQuery == NULL) 
        {
            eggQuery = new_query;  
        }
        else
        {
            eggQuery = eggQuery_and(eggQuery,new_query);

        }
    }
    return eggQuery;
}		/* -----  end of function get_queryadd_query  ----- */
Exemple #2
0
static HEGGQUERY getQuery()
{
    char key[1000] = {0};
    char fieldName[200] = "";

    HEGGQUERY h1, h2;
    printf("fieldName: ");
    scanf("%s", fieldName);
    printf("key: ");
    scanf("%s", key);
    h1 = nextQuery(fieldName, key);

    while (1)
    {
        HEGGQUERY h2 = 0;
        int c;
        printf("logic? ");
        char bb[20] = "";
        fgets(bb, sizeof(bb), stdin);
        fgets(bb, sizeof(bb), stdin);        
        c = bb[0];
        printf("--------     :%c\n",c);
        if (c == 'a' || c == 'A')
        {
            printf("FieldName: ");
            scanf("%s", fieldName);
            printf("key: ");
            scanf("%s", key);
            h2 = nextQuery(fieldName, key);
            
            h1 = eggQuery_and(h1, h2);
        }
        else if  (c == 'o' || c == 'O')
        {
            printf("FieldName: ");
            scanf("%s", fieldName);
            printf("key: ");
            scanf("%s", key);
            h2 = nextQuery(fieldName, key);
            
            h1 = eggQuery_or(h1, h2);
        }
        else if  (c == '-')
        {
            printf("FieldName: ");
            scanf("%s", fieldName);
            printf("key: ");
            scanf("%s", key);
            h2 = nextQuery(fieldName,key);

            h1 = eggQuery_minus(h1, h2);
        }
        else
        {
            break;
        }
    }

    return h1;
    
}