Index: modules/queries/src/java/org/apache/lucene/queries/function/valuesource/NumericIndexDocValueSource.java
===================================================================
--- modules/queries/src/java/org/apache/lucene/queries/function/valuesource/NumericIndexDocValueSource.java	(revision 1141367)
+++ modules/queries/src/java/org/apache/lucene/queries/function/valuesource/NumericIndexDocValueSource.java	(working copy)
@@ -1,4 +1,4 @@
-package org.apache.lucene.search.function;
+package org.apache.lucene.queries.function.valuesource;
 
 /**
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -17,10 +17,13 @@
  * limitations under the License.
  */
 import java.io.IOException;
+import java.util.Map;
 
 import org.apache.lucene.index.IndexReader.AtomicReaderContext;
 import org.apache.lucene.index.values.IndexDocValues;
 import org.apache.lucene.index.values.ValueType;
+import org.apache.lucene.queries.function.DocValues;
+import org.apache.lucene.queries.function.ValueSource;
 
 /**
  * Expert: obtains numeric field values from a {@link IndexDocValues} field.
@@ -39,13 +42,14 @@
   }
 
   @Override
-  public DocValues getValues(AtomicReaderContext context) throws IOException {
-    final IndexDocValues.Source source = context.reader.docValues(field)
+  public DocValues getValues(Map context, AtomicReaderContext readerContext) throws IOException {
+    final IndexDocValues.Source source = readerContext.reader.docValues(field)
         .getSource();
     ValueType type = source.type();
     switch (type) {
     case FLOAT_32:
     case FLOAT_64:
+      // TODO (chrism) Change to use FloatDocValues and IntDocValues
       return new DocValues() {
 
         @Override
Index: lucene/src/java/org/apache/lucene/search/function/IntFieldSource.java
===================================================================
--- lucene/src/java/org/apache/lucene/search/function/IntFieldSource.java	(revision 1141367)
+++ lucene/src/java/org/apache/lucene/search/function/IntFieldSource.java	(working copy)
@@ -40,7 +40,10 @@
  * double RAM usage for the values in the FieldCache.  It's
  * best to switch your application to pass only atomic
  * (single segment) readers to this API.</p>
+ *
+ * @deprecated (4.0) Use org.apache.lucene.queries.function.valuesource.IntFieldSource
  */
+@Deprecated
 public class IntFieldSource extends FieldCacheSource {
   private FieldCache.IntParser parser;
 
Index: lucene/src/java/org/apache/lucene/search/function/ValueSourceQuery.java
===================================================================
--- lucene/src/java/org/apache/lucene/search/function/ValueSourceQuery.java	(revision 1141367)
+++ lucene/src/java/org/apache/lucene/search/function/ValueSourceQuery.java	(working copy)
@@ -39,7 +39,10 @@
  * Score is set as: Score(doc,query) = query.getBoost()<sup>2</sup> * valueSource(doc).  
  *
  * @lucene.experimental
+ *
+ * @deprecated (4.0) Use org.apache.lucene.queries.function.FunctionQuery
  */
+@Deprecated
 public class ValueSourceQuery extends Query {
   ValueSource valSrc;
 
Index: lucene/src/java/org/apache/lucene/search/function/ShortFieldSource.java
===================================================================
--- lucene/src/java/org/apache/lucene/search/function/ShortFieldSource.java	(revision 1141367)
+++ lucene/src/java/org/apache/lucene/search/function/ShortFieldSource.java	(working copy)
@@ -40,7 +40,10 @@
  * double RAM usage for the values in the FieldCache.  It's
  * best to switch your application to pass only atomic
  * (single segment) readers to this API.</p>
+ *
+ * @deprecated (4.0) Use org.apache.lucene.queries.function.valuesource.ShortFieldSource
  */
+@Deprecated
 public class ShortFieldSource extends FieldCacheSource {
   private FieldCache.ShortParser parser;
 
Index: lucene/src/java/org/apache/lucene/search/function/DocValues.java
===================================================================
--- lucene/src/java/org/apache/lucene/search/function/DocValues.java	(revision 1141367)
+++ lucene/src/java/org/apache/lucene/search/function/DocValues.java	(working copy)
@@ -27,8 +27,9 @@
  *
  * @lucene.experimental
  * 
- *
+ * @deprecated (4.0) Use org.apache.lucene.queries.function.DocValues
  */
+@Deprecated
 public abstract class DocValues {
   /*
    * DocValues is distinct from ValueSource because
Index: lucene/src/java/org/apache/lucene/search/function/FieldScoreQuery.java
===================================================================
--- lucene/src/java/org/apache/lucene/search/function/FieldScoreQuery.java	(revision 1141367)
+++ lucene/src/java/org/apache/lucene/search/function/FieldScoreQuery.java	(working copy)
@@ -53,7 +53,10 @@
  * paid for loading the field values into memory over and over again!
  * 
  * @lucene.experimental
+ *
+ * @deprecated (4.0) Use org.apache.lucene.queries.function.FunctionQuery
  */
+@Deprecated
 public class FieldScoreQuery extends ValueSourceQuery {
 
   /**
Index: lucene/src/java/org/apache/lucene/search/function/ReverseOrdFieldSource.java
===================================================================
--- lucene/src/java/org/apache/lucene/search/function/ReverseOrdFieldSource.java	(revision 1141367)
+++ lucene/src/java/org/apache/lucene/search/function/ReverseOrdFieldSource.java	(working copy)
@@ -48,8 +48,10 @@
  * double RAM usage for the values in the FieldCache.  It's
  * best to switch your application to pass only atomic
  * (single segment) readers to this API.</p>
+ *
+ * @deprecated (4.0) Use org.apache.lucene.queries.function.valuesource.ReverseOrdFieldSource
  */
-
+@Deprecated
 public class ReverseOrdFieldSource extends ValueSource {
   public String field;
 
Index: lucene/src/java/org/apache/lucene/search/function/ByteFieldSource.java
===================================================================
--- lucene/src/java/org/apache/lucene/search/function/ByteFieldSource.java	(revision 1141367)
+++ lucene/src/java/org/apache/lucene/search/function/ByteFieldSource.java	(working copy)
@@ -40,7 +40,10 @@
  * double RAM usage for the values in the FieldCache.  It's
  * best to switch your application to pass only atomic
  * (single segment) readers to this API.</p>
+ *
+ * @deprecated (4.0) Use org.apache.lucene.queries.function.valuesource.ByteFieldSource
  */
+@Deprecated
 public class ByteFieldSource extends FieldCacheSource {
   private FieldCache.ByteParser parser;
 
Index: lucene/src/java/org/apache/lucene/search/function/FieldCacheSource.java
===================================================================
--- lucene/src/java/org/apache/lucene/search/function/FieldCacheSource.java	(revision 1141367)
+++ lucene/src/java/org/apache/lucene/search/function/FieldCacheSource.java	(working copy)
@@ -43,7 +43,10 @@
  * double RAM usage for the values in the FieldCache.  It's
  * best to switch your application to pass only atomic
  * (single segment) readers to this API.</p>
+ *
+ * @deprecated (4.0) Use org.apache.lucene.queries.function.valuesource.FieldCacheSource
  */
+@Deprecated
 public abstract class FieldCacheSource extends ValueSource {
   private String field;
 
Index: lucene/src/java/org/apache/lucene/search/function/OrdFieldSource.java
===================================================================
--- lucene/src/java/org/apache/lucene/search/function/OrdFieldSource.java	(revision 1141367)
+++ lucene/src/java/org/apache/lucene/search/function/OrdFieldSource.java	(working copy)
@@ -48,8 +48,10 @@
  * double RAM usage for the values in the FieldCache.  It's
  * best to switch your application to pass only atomic
  * (single segment) readers to this API.</p>
+ *
+ * @deprecated (4.0) Use org.apache.lucene.queries.function.valuesource.OrdFieldSource
  */
-
+@Deprecated
 public class OrdFieldSource extends ValueSource {
   protected String field;
 
Index: lucene/src/java/org/apache/lucene/search/function/FloatFieldSource.java
===================================================================
--- lucene/src/java/org/apache/lucene/search/function/FloatFieldSource.java	(revision 1141367)
+++ lucene/src/java/org/apache/lucene/search/function/FloatFieldSource.java	(working copy)
@@ -40,7 +40,10 @@
  * double RAM usage for the values in the FieldCache.  It's
  * best to switch your application to pass only atomic
  * (single segment) readers to this API.</p>
+ *
+ * @deprecated (4.0) Use org.apache.lucene.queries.function.valuesource.FloatFieldSource
  */
+@Deprecated
 public class FloatFieldSource extends FieldCacheSource {
   private FieldCache.FloatParser parser;
 
Index: lucene/src/java/org/apache/lucene/search/function/ValueSource.java
===================================================================
--- lucene/src/java/org/apache/lucene/search/function/ValueSource.java	(revision 1141367)
+++ lucene/src/java/org/apache/lucene/search/function/ValueSource.java	(working copy)
@@ -34,8 +34,9 @@
  *
  * @lucene.experimental
  *
- *
+ * @deprecated (4.0) Use org.apache.lucene.queries.function.ValueSource
  */
+@Deprecated
 public abstract class ValueSource {
 
   /**
Index: lucene/src/java/org/apache/lucene/search/function/NumericIndexDocValueSource.java (deleted)
===================================================================
Index: lucene/src/java/org/apache/lucene/search/function/package.html
===================================================================
--- lucene/src/java/org/apache/lucene/search/function/package.html	(revision 1141367)
+++ lucene/src/java/org/apache/lucene/search/function/package.html	(working copy)
@@ -19,6 +19,10 @@
   <TITLE>org.apache.lucene.search.function</TITLE>
 </HEAD>
 <BODY>
+<DIV style="color: red;">
+  <strong>@deperecated (4.0)</strong> The functionality of this package has been deprecated and replaced
+  by that found at org.apache.lucene.queries.function
+</DIV>
 <DIV>
   Programmatic control over documents scores.
 </DIV>
