Clients frequently ask me how search engines process their data, and this is no small answer. See search engines run highly complex algorithms day and night to ensure you always get only the sites most relevant to your search. This includes paid results! So what does this mean to you? It means that no matter how much you spend on paid traffic initiatives they won’t work well until you prove to the search engines that your site is the most relevant to that search. This process is what sets Interweave Technologies apart from the crowd. We only offer comprehensive internet marketing solutions that account for content generation, link building, site content, banner ads, search ads, social network cultivation and marketing and directory marketing. All of these online marketing techniques have become interweaved and are highly dependent on each other.

Did you know that in 2011 there were nearly 14 billion online devices in the world. You heard it right there are now internet connected devices for every 1 person in the world and this number is quickly growing. Numbers like this are heard to ignore. Customers are swarming to search engines and online directories daily to find products and services. Start dominating your competitors online and call Interweave Technologies today.

Below, I have included a small chunk of an actual search engine prioritization algorithm.

if ( i == j ) {

docMatrix.addLink(xURL, xURL, similarity);

} else {

TermFreqVector x = idxR.getTermFreqVector(i, “content”);

TermFreqVector y = idxR.getTermFreqVector(j, “content”);

similarity = getImportance(x.getTerms(), x.getTermFrequencies(),

Document docY = idxR.document(j);

String yURL = docY.get(“url”);

docMatrix.addLink(xURL, yURL, similarity);



y.getTerms(), y.getTermFrequencies());



return docMatrix;


private double getImportance(String[] xTerms, int[] xTermFreq,

Map<String, Integer> xFreqMap = buildFreqMap(xTerms, xTermFreq);

Map<String, Integer> yFreqMap = buildFreqMap(yTerms, yTermFreq);

Set<String> sharedTerms = new HashSet<String>(xFreqMap.keySet());


double sharedTermsSum = 0.0;

double xF, yF;

for(String term : sharedTerms) {

xF = xFreqMap.get(term).doubleValue();

yF = yFreqMap.get(term).doubleValue();

sharedTermsSum += Math.round(Math.tanh(yF/xF));


return sharedTermsSum;


private Map<String, Integer> buildFreqMap(String[] terms, int[] freq) {

int topNTermsToKeep = (termsToKeep == 0)? TERMS_TO_KEEP: termsToKeep;

Map<String, Integer> freqMap =

TermFreqMapUtils.getTopNTermFreqMap(terms, freq, topNTermsToKeep);

return freqMap;


public void run() {

try {

IndexReader idxR =;

String[] yTerms, int[] yTermFreq) {

matrixH = buildMatrixH(idxR);


catch(Exception e) {

throw new RuntimeException(“Error while building matrix: “, e);