Package org.fast.search

Source Code of org.fast.search.StringSearchEngine

package org.fast.search;

import org.fast.search.hash.SearchTable;
import org.fast.search.hash.StringSearchTable;

/**
* Used for fast String memory search based on hash codes. Object requires 512 MB of memory per search table.
* @author Nenad.Vico
*/
public class StringSearchEngine extends SearchEngine<String>
{
    private static final int[] factors = {11,7,3,37,97};

    /**
     * Default Constructor.
     */
    public StringSearchEngine() {
        super();
    }

    /**
     * Constructor with number of search tables.
     * @param number  number of search  tables.
     */
    public StringSearchEngine(int number) {
        super();
        setNumberOfSearchTables(number);
    }

    /**
     * Sets number of search tables.
     * @param number number of search tables.
     */
    public void setNumberOfSearchTables(int number) {
        if (number > factors.length+1) {
            throw new IllegalArgumentException("Number of search tables is greater than maximum allowed: "+factors.length);
        }
        if (number < 0) {
            number = 1;
        }
        SearchTable[] tables = new SearchTable[number];
        tables[0] = new SearchTable<String>();
        for(int i = 1; i < number; i++) {
            tables[i] new StringSearchTable(factors[i-1]);
        }
        setTables(tables);
    }
}
TOP

Related Classes of org.fast.search.StringSearchEngine

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.