From: Wolfgang M. M. <wol...@us...> - 2004-07-14 19:03:38
|
Update of /cvsroot/exist/eXist-1.0/src/org/exist/util In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14412/src/org/exist/util Modified Files: OrderedLinkedList.java Configuration.java Log Message: Added optional term frequency counts to fulltext index. Index: OrderedLinkedList.java =================================================================== RCS file: /cvsroot/exist/eXist-1.0/src/org/exist/util/OrderedLinkedList.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** OrderedLinkedList.java 31 Mar 2003 09:22:10 -0000 1.2 --- OrderedLinkedList.java 14 Jul 2004 19:03:25 -0000 1.3 *************** *** 25,39 **** public class OrderedLinkedList { ! private final static class Node { ! Comparable data; Node next = null; Node prev = null; ! public Node(Comparable data) { ! this.data = data; } } private Node header = null; private Node last = null; --- 25,63 ---- public class OrderedLinkedList { ! public abstract static class Node { Node next = null; Node prev = null; ! public Node() { } + public Node getNextNode() { return next; } + public Node getPrevNode() { return prev; } + + public abstract int compareTo(Node other); + public abstract boolean equals(Node other); } + public static class SimpleNode extends Node { + Comparable data; + + public SimpleNode(Comparable data) { + this.data = data; + } + + public int compareTo(Node other) { + final SimpleNode o = (SimpleNode)other; + return data.compareTo(o.data); + } + + public boolean equals(Node other) { + return ((SimpleNode)other).data.equals(data); + } + + public Comparable getData() { + return data; + } + } + private Node header = null; private Node last = null; *************** *** 43,57 **** public OrderedLinkedList() { } ! ! public Node add(Comparable obj) { size++; if (header == null) { ! header = new Node(obj); last = header; return header; } - Node newNode = new Node(obj); Node node = header; ! while (obj.compareTo(node.data) > 0) { if (node.next == null) { // append to end of list --- 67,82 ---- public OrderedLinkedList() { } ! ! public Node add(Node newNode) { ! newNode.next = null; ! newNode.prev = null; size++; if (header == null) { ! header = newNode; last = header; return header; } Node node = header; ! while (newNode.compareTo(node) > 0) { if (node.next == null) { // append to end of list *************** *** 74,95 **** } ! public void remove(Comparable obj) { Node node = header; while (node != null) { ! if (node.data == obj) { ! if (node.prev == null) { ! if (node.next != null) { ! node.next.prev = null; ! header = node.next; ! } else ! header = null; ! } else { ! node.prev.next = node.next; ! if (node.next != null) ! node.next.prev = node.prev; ! else ! last = node.prev; ! } ! size--; return; } --- 99,107 ---- } ! public void remove(Node n) { Node node = header; while (node != null) { ! if (node.equals(n)) { ! removeNode(n); return; } *************** *** 98,102 **** } ! public Object removeFirst() { Node node = header; header = node.next; --- 110,131 ---- } ! public void removeNode(Node node) { ! if (node.prev == null) { ! if (node.next != null) { ! node.next.prev = null; ! header = node.next; ! } else ! header = null; ! } else { ! node.prev.next = node.next; ! if (node.next != null) ! node.next.prev = node.prev; ! else ! last = node.prev; ! } ! size--; ! } ! ! public Node removeFirst() { Node node = header; header = node.next; *************** *** 104,124 **** header.prev = null; --size; ! return node.data; } ! public Object removeLast() { Node node = last; last = node.prev; last.next = null; --size; ! return node.data; } ! ! public Object get(int pos) { Node node = header; int count = 0; while (node != null) { if (count++ == pos) ! return node.data; node = node.next; } --- 133,157 ---- header.prev = null; --size; ! return node; } ! public Node removeLast() { Node node = last; last = node.prev; last.next = null; --size; ! return node; } ! ! public Node getLast() { ! return last == null ? null : last; ! } ! ! public Node get(int pos) { Node node = header; int count = 0; while (node != null) { if (count++ == pos) ! return node; node = node.next; } *************** *** 126,129 **** --- 159,193 ---- } + public Node[] getData() { + Node[] data = new Node[size]; + Node next = header; + int i = 0; + while( next != null ) { + data[i++] = next; + next = next.next; + } + return data; + } + + public Node[] toArray(Node[] data) { + Node next = header; + int i = 0; + while( next != null ) { + data[i++] = next; + next = next.next; + } + return data; + } + + public boolean contains(Node c) { + Node next = header; + while( next != null ) { + if(next.equals(c)) + return true; + next = next.next; + } + return false; + } + public int size() { return size; *************** *** 155,161 **** if (next == null) return null; ! Node current = next; next = next.next; ! return current.data; } --- 219,225 ---- if (next == null) return null; ! final Node current = next; next = next.next; ! return current; } *************** *** 167,189 **** public static void main(String args[]) { OrderedLinkedList list = new OrderedLinkedList(); ! list.add("Adam"); ! list.add("Sabine"); ! list.add("Adam"); ! list.add("Georg"); ! list.add("Heinrich"); ! list.add("Georg"); ! list.add("Wolfgang"); ! list.add("Egon"); ! list.add("Berta"); ! list.add("Fritz"); ! list.remove("Berta"); ! list.add("Hans"); ! list.add("Xerces"); ! list.add("Hubert"); ! list.add("Georg"); ! list.remove("Xerces"); ! list.remove("Wolfgang"); for(int i = 0; i < list.size(); i++) ! System.out.println(list.get(i)); } } --- 231,251 ---- public static void main(String args[]) { OrderedLinkedList list = new OrderedLinkedList(); ! list.add(new SimpleNode("Adam")); ! list.add(new SimpleNode("Sabine")); ! list.add(new SimpleNode("Georg")); ! list.add(new SimpleNode("Henry")); ! list.add(new SimpleNode("Achim")); ! list.add(new SimpleNode("Franz")); ! list.add(new SimpleNode("Doris")); ! list.add(new SimpleNode("Rudi")); ! list.add(new SimpleNode("Hermann")); ! list.add(new SimpleNode("Lisa")); ! list.add(new SimpleNode("Xaver")); ! list.add(new SimpleNode("Reinhard")); ! list.add(new SimpleNode("Ludwig")); ! list.remove(new SimpleNode("Lisa")); ! list.remove(new SimpleNode("Henry")); for(int i = 0; i < list.size(); i++) ! System.out.println(((SimpleNode)list.get(i)).data); } } Index: Configuration.java =================================================================== RCS file: /cvsroot/exist/eXist-1.0/src/org/exist/util/Configuration.java,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** Configuration.java 27 Jun 2004 21:10:09 -0000 1.19 --- Configuration.java 14 Jul 2004 19:03:25 -0000 1.20 *************** *** 114,117 **** --- 114,118 ---- String indexDepth = p.getAttribute("index-depth"); String stemming = p.getAttribute("stemming"); + String termFreq = p.getAttribute("track-term-freq"); String suppressWS = p.getAttribute("suppress-whitespace"); String caseSensitive = p.getAttribute("caseSensitive"); *************** *** 127,130 **** --- 128,134 ---- config.put("indexer.stem", Boolean.valueOf(stemming.equals("yes"))); + if (termFreq != null) + config.put("indexer.store-term-freq", Boolean.valueOf(termFreq.equals("yes"))); + if (caseSensitive != null) config.put( |