Ejemplo n.º 1
0
def search():
    """@params: q: query statement
                fl: filter by column
                count: the number of ci
                ret_key: id, name, alias
                facet: statistic
                wt: result format
    """
    page = get_page(request.values.get("page", 1))
    count = get_per_page(request.values.get("count"))

    query = request.values.get('q', "")
    fl = request.values.get('fl', "").split(",")
    ret_key = request.values.get('ret_key', "name")
    if ret_key not in ('name', 'alias', 'id'):
        ret_key = 'name'
    facet = request.values.get("facet", "").split(",")
    wt = request.values.get('wt', 'json')
    fl = filter(lambda x: x != "", fl)
    facet = filter(lambda x: x != "", facet)
    sort = request.values.get("sort")

    start = time.time()
    s = Search(query, fl, facet, page, ret_key, count, sort)
    try:
        response, counter, total, page, numfound, facet = s.search()
    except SearchError, e:
        return abort(400, str(e))
Ejemplo n.º 2
0
def get_last_bookmark_archive_date():
    """
    do an Elasticsearch query for the most recent
    bookmark archive date
    return it in the same format as get_last_bookmark_update_date
    for comparison purposes
    """
    s = Search('{}_bookmarks'.format(settings.PINBOARD_USERNAME), {
        "from": 0,
        "size": 1,
        "query": {
            "match_all": {}
        },
        "fields": [
            "time"
        ],
        "sort": {
            "time": {
                "order": "desc"
            }
        }
    }, mappers={
        'time': ElasticFieldMapper.date
    })
    ero = s.search()
    first = next(ero.hits, None)
    return first.time if first is not None else first