diff --git a/lucene/src/site/build/site/contributions.html b/lucene/src/site/build/site/contributions.html index 1e2ecc0a4dd..04494a18a2b 100644 --- a/lucene/src/site/build/site/contributions.html +++ b/lucene/src/site/build/site/contributions.html @@ -199,6 +199,9 @@ document.write("Last Published: " + document.lastModified); +
@@ -727,5 +730,18 @@ document.write("Last Published: " + document.lastModified); |end bottomstrip +-->
+ diff --git a/lucene/src/site/build/site/demo.html b/lucene/src/site/build/site/demo.html index 90373dfe61e..f179d9cf685 100644 --- a/lucene/src/site/build/site/demo.html +++ b/lucene/src/site/build/site/demo.html @@ -199,6 +199,9 @@ document.write("Last Published: " + document.lastModified); +
@@ -342,5 +345,18 @@ document.write("Last Published: " + document.lastModified); |end bottomstrip +-->
+ diff --git a/lucene/src/site/build/site/demo2.html b/lucene/src/site/build/site/demo2.html index df64e9576f3..cac36e4ead4 100644 --- a/lucene/src/site/build/site/demo2.html +++ b/lucene/src/site/build/site/demo2.html @@ -199,6 +199,9 @@ document.write("Last Published: " + document.lastModified); +
@@ -392,5 +395,18 @@ document.write("Last Published: " + document.lastModified); |end bottomstrip +-->
+ diff --git a/lucene/src/site/build/site/fileformats.html b/lucene/src/site/build/site/fileformats.html index a8e75bbb731..30e38b0fb11 100644 --- a/lucene/src/site/build/site/fileformats.html +++ b/lucene/src/site/build/site/fileformats.html @@ -199,6 +199,9 @@ document.write("Last Published: " + document.lastModified); +
@@ -2623,5 +2626,18 @@ document.write("Last Published: " + document.lastModified); |end bottomstrip +-->
+ diff --git a/lucene/src/site/build/site/gettingstarted.html b/lucene/src/site/build/site/gettingstarted.html index a50a3581ede..75988472620 100644 --- a/lucene/src/site/build/site/gettingstarted.html +++ b/lucene/src/site/build/site/gettingstarted.html @@ -199,6 +199,9 @@ document.write("Last Published: " + document.lastModified); +
@@ -281,5 +284,18 @@ document.write("Last Published: " + document.lastModified); |end bottomstrip +-->
+ diff --git a/lucene/src/site/build/site/index.html b/lucene/src/site/build/site/index.html index bd258d4fd1d..32eb2ec7284 100644 --- a/lucene/src/site/build/site/index.html +++ b/lucene/src/site/build/site/index.html @@ -197,6 +197,9 @@ document.write("Last Published: " + document.lastModified); +

@@ -251,5 +254,18 @@ document.write("Last Published: " + document.lastModified); |end bottomstrip +-->
+ diff --git a/lucene/src/site/build/site/linkmap.html b/lucene/src/site/build/site/linkmap.html index c4b46090f85..f43b0badef2 100644 --- a/lucene/src/site/build/site/linkmap.html +++ b/lucene/src/site/build/site/linkmap.html @@ -197,6 +197,9 @@ document.write("Last Published: " + document.lastModified); +
@@ -421,6 +424,12 @@ document.write("Last Published: " + document.lastModified); Wiki  ___________________  wiki + + @@ -455,5 +464,18 @@ document.write("Last Published: " + document.lastModified); |end bottomstrip +-->
+ diff --git a/lucene/src/site/build/site/lucene-contrib/index.html b/lucene/src/site/build/site/lucene-contrib/index.html index d0edfaa0547..f09b622345f 100644 --- a/lucene/src/site/build/site/lucene-contrib/index.html +++ b/lucene/src/site/build/site/lucene-contrib/index.html @@ -199,6 +199,9 @@ document.write("Last Published: " + document.lastModified); +

@@ -400,5 +403,18 @@ document.write("Last Published: " + document.lastModified); |end bottomstrip +-->
+ diff --git a/lucene/src/site/build/site/queryparsersyntax.html b/lucene/src/site/build/site/queryparsersyntax.html index ba748aa2262..a79ec6b79c8 100644 --- a/lucene/src/site/build/site/queryparsersyntax.html +++ b/lucene/src/site/build/site/queryparsersyntax.html @@ -199,6 +199,9 @@ document.write("Last Published: " + document.lastModified); +
@@ -507,5 +510,18 @@ document.write("Last Published: " + document.lastModified); |end bottomstrip +-->
+ diff --git a/lucene/src/site/build/site/scoring.html b/lucene/src/site/build/site/scoring.html index 4fe632a7665..7bb98c91f93 100644 --- a/lucene/src/site/build/site/scoring.html +++ b/lucene/src/site/build/site/scoring.html @@ -199,6 +199,9 @@ document.write("Last Published: " + document.lastModified); +
@@ -570,5 +573,18 @@ document.write("Last Published: " + document.lastModified); |end bottomstrip +-->
+ diff --git a/lucene/src/site/build/site/systemrequirements.html b/lucene/src/site/build/site/systemrequirements.html index 94e98b7a3fd..25b460d3b6b 100644 --- a/lucene/src/site/build/site/systemrequirements.html +++ b/lucene/src/site/build/site/systemrequirements.html @@ -197,6 +197,9 @@ document.write("Last Published: " + document.lastModified); +
@@ -270,5 +273,18 @@ document.write("Last Published: " + document.lastModified); |end bottomstrip +-->
+ diff --git a/lucene/src/site/src/documentation/content/xdocs/site.xml b/lucene/src/site/src/documentation/content/xdocs/site.xml index 224e4f347fa..fe05ec4ead5 100755 --- a/lucene/src/site/src/documentation/content/xdocs/site.xml +++ b/lucene/src/site/src/documentation/content/xdocs/site.xml @@ -78,6 +78,7 @@ See http://forrest.apache.org/docs/linking.html for more info + + diff --git a/solr/site/features.pdf b/solr/site/features.pdf index b8369357749..8449514b80e 100755 Binary files a/solr/site/features.pdf and b/solr/site/features.pdf differ diff --git a/solr/site/index.html b/solr/site/index.html index 25a85a5975d..aff3b285f73 100755 --- a/solr/site/index.html +++ b/solr/site/index.html @@ -3,7 +3,7 @@ - + Welcome to Solr @@ -109,6 +109,9 @@ document.write("Last Published: " + document.lastModified); + - +

What Is Solr?

@@ -351,7 +354,7 @@ customization is required.

- +

Get Started

    @@ -373,10 +376,10 @@ customization is required.
- +

News

- +

27 November 2011 - Solr 3.5.0 Released

The Lucene PMC is pleased to announce the release of @@ -434,7 +437,7 @@ customization is required. - +

18 November 2011 - 2nd edition of the first book on Solr published!

Apache Solr 3 Enterprise Search Server cover @@ -461,7 +464,7 @@ customization is required. and at the authors' site, including a free chapter and search parameter quick-reference sheet (the appendix).

- +

26 October 2011 - Java 7u1 fixes index corruption and crash bugs in Apache Lucene Core and Apache Solr

Oracle released Java 7u1 on October 19. According to the release notes and tests done by the Lucene committers, all bugs reported on July 28 are fixed in this release, @@ -475,7 +478,7 @@ customization is required. version shipped with Java 7 changed and tokenization behaves differently (e.g. lowercasing). For more information, read JRE_VERSION_MIGRATION.txt in your distribution package!

- +

14 September 2011 - Solr 3.4.0 Released

The Lucene PMC is pleased to announce the release of Apache Solr 3.4.0!

@@ -539,7 +542,7 @@ customization is required.

See the release notes for a more complete list of all the new features, improvements, and bugfixes.

- +

28 July 2011 - WARNING: Index corruption and crashes in Apache Lucene Core / Apache Solr with Java 7

Oracle released Java 7 today. Unfortunately it contains hotspot compiler optimizations, which miscompile some loops. @@ -577,13 +580,13 @@ customization is required. version shipped with Java 7 changed and tokenization behaves differently (e.g. lowercasing). For more information, read JRE_VERSION_MIGRATION.txt in your distribution package!

- +

22 July 2011 - Solr 3.1 cookbook published!

Solr Cookbook coverRafał Kuć is proud to introduce a new book on Solr, "Apache Solr 3.1 Cookbook" from Packt Publishing.

The Solr 3.1 Cookbook will make your everyday work easier by using real-life examples that show you how to deal with the most common problems that can arise while using the Apache Solr search engine.

This cookbook will show you how to get the most out of your search engine. Each chapter covers a different aspect of working with Solr from analyzing your text data through querying, performance improvement, and developing your own modules. The practical recipes will help you to quickly solve common problems with data analysis, show you how to use faceting to collect data and to speed up the performance of Solr. You will learn about functionalities that most newbies are unaware of, such as sorting results by a function value, highlighting matched words, and computing statistics to make your work with Solr easy and stress free.

- +

July 2011 - Solr 3.3 Released

The Lucene PMC is pleased to announce the release of Apache Solr 3.3!

@@ -613,7 +616,7 @@ customization is required.

See the release notes for a more complete list of all the new features, improvements, and bugfixes.

- +

May 2011 - Solr 3.2 Released

The Lucene PMC is pleased to announce the release of Apache Solr 3.2!

@@ -639,7 +642,7 @@ customization is required.

See the release notes for a more complete list of all the new features, improvements, and bugfixes.

- +

March 2011 - Solr 3.1 Released

The Lucene PMC is pleased to announce the release of Apache Solr 3.1!

@@ -687,7 +690,7 @@ customization is required.

See the release notes for a more complete list of all the new features, improvements, and bugfixes.

- +

25 June 2010 - Solr 1.4.1 Released

Solr 1.4.1 has been released and is now available for public @@ -700,7 +703,7 @@ customization is required. See the release notes for more details.

- +

7 May 2010 - Apache Lucene Eurocon 2010 Coming to Prague May 18-21

On May 18th to the 21st Prague will play host to the first @@ -772,7 +775,7 @@ customization is required. - +

10 November 2009 - Solr 1.4 Released

Solr 1.4 has been released and is now available for public download! @@ -804,12 +807,12 @@ customization is required.

See the release notes for more details.

- +

20 August 2009 - Solr's first book is published!

-Solr book cover - David Smiley and Eric Pugh are proud to introduce the first book on Solr, "Solr 1.4 Enterprise Search Server" from Packt Publishing. +Solr book cover + David Smiley and Eric Pugh are proud to introduce the first book on Solr, "Solr 1.4 Enterprise Search Server" from Packt Publishing.

This book is a comprehensive reference guide for nearly every feature Solr has to offer. It serves the reader right from initiation to development to deployment. It also comes with complete running examples to demonstrate its use and show how to integrate it with other languages and frameworks.

@@ -819,7 +822,7 @@ customization is required.

Finally, this book covers various deployment considerations to include indexing strategies and performance-oriented configuration that will enable you to scale Solr to meet the needs of a high-volume site.

- +

18 August 2009 - Lucene at US ApacheCon

@@ -895,7 +898,7 @@ Be sure not to miss: Search - Jason Rutherglen @ 15:00 - +

09 February 2009 - Lucene at ApacheCon Europe 2009 in Amsterdam

@@ -933,23 +936,23 @@ Be sure not to miss: - +

19 December 2008 - Solr Logo Contest Results

Many great logos were submitted, but only one could be chosen. Congratulations Michiel, the creator of the winning logo that is proudly displayed at the top of this page.

- +

03 October 2008 - Solr Logo Contest

By popular demand, Solr is holding a contest to pick a new Solr logo. Details about how to submit an entry can be found on the wiki. The Deadline for submissions is November 20th, 2008 @ 11:59PM GMT.

- +

15 September 2008 - Solr 1.3.0 Available

Solr 1.3.0 is available for public download. This version contains many enhancements and bug fixes, including distributed search capabilities, Lucene 2.3.x performance improvements and many others.

See the release notes for more details. Download is available from a Apache Mirror.

- +

28 August 2008 - Lucene/Solr at ApacheCon New Orleans

@@ -971,7 +974,7 @@ Be sure not to miss:

  • An entire day of Lucene sessions on November 5th
  • - +

    03 September 2007 - Lucene at ApacheCon Atlanta

    ApacheCon US logo @@ -991,7 +994,7 @@ Be sure not to miss:

  • November 16, 4:00 pm: Advanced Indexing Techniques with Apache Lucene by Michael Busch. Information on payloads and advanced indexing techniques.
  • - +

    06 June 2007: Release 1.2 available

    This is the first release since Solr graduated from the Incubator, @@ -1001,40 +1004,40 @@ Be sure not to miss: and more flexible plugins.

    See the release notes for more details.

    - +

    17 January 2007: Solr graduates from Incubator

    Solr has graduated from the Apache Incubator, and is now a sub-project of Lucene.

    - +

    22 December 2006: Release 1.1.0 available

    This is the first release since Solr joined the Incubator, and brings many new features and performance optimizations including highlighting, faceted search, and JSON/Python/Ruby response formats.

    - +

    15 August 2006: Solr at ApacheCon US

    Chris Hostetter will be presenting "Faceted Searching With Apache Solr" at ApacheCon US 2006, on October 13th at 4:30pm. See the ApacheCon website for more details.

    - +

    21 April 2006: Solr at ApacheCon

    Yonik Seeley will be presenting "Apache Solr, a Full-Text Search Server based on Lucene" at ApacheCon Europe 2006, on June 29th at 5:30pm. See the ApacheCon website for more details.

    - +

    21 February 2006: nightly builds

    Solr now has nightly builds. This automatically creates a downloadable version of Solr every night. All unit tests must pass, or a message is sent to the developers mailing list and no new version is created. This also updates the javadoc.

    - +

    17 January 2006: Solr Joins Apache Incubator

    Solr, a search server based on Lucene, has been accepted into the Apache Incubator. Solr was originally developed by CNET Networks, and is widely used within CNET @@ -1067,5 +1070,18 @@ document.write("Last Published: " + document.lastModified); |end bottomstrip +-->

    + diff --git a/solr/site/index.pdf b/solr/site/index.pdf index 0b94db3be03..cc58ed1237e 100755 Binary files a/solr/site/index.pdf and b/solr/site/index.pdf differ diff --git a/solr/site/issue_tracking.html b/solr/site/issue_tracking.html index 53b2963a376..3b0ec34a8ef 100755 --- a/solr/site/issue_tracking.html +++ b/solr/site/issue_tracking.html @@ -3,7 +3,7 @@ - + Solr Issue Tracking @@ -109,6 +109,9 @@ document.write("Last Published: " + document.lastModified); + + diff --git a/solr/site/issue_tracking.pdf b/solr/site/issue_tracking.pdf index 885cba949d8..c6fbea71752 100755 Binary files a/solr/site/issue_tracking.pdf and b/solr/site/issue_tracking.pdf differ diff --git a/solr/site/linkmap.html b/solr/site/linkmap.html index fc40a200d63..098241a02b6 100755 --- a/solr/site/linkmap.html +++ b/solr/site/linkmap.html @@ -3,7 +3,7 @@ - + Site Linkmap Table of Contents @@ -109,6 +109,9 @@ document.write("Last Published: " + document.lastModified); + + diff --git a/solr/site/linkmap.pdf b/solr/site/linkmap.pdf index f9c9701df83..30e6097db98 100755 Binary files a/solr/site/linkmap.pdf and b/solr/site/linkmap.pdf differ diff --git a/solr/site/mailing_lists.html b/solr/site/mailing_lists.html index 9add1be7d1b..70f2eff6425 100755 --- a/solr/site/mailing_lists.html +++ b/solr/site/mailing_lists.html @@ -3,7 +3,7 @@ - + Solr Mailing Lists @@ -109,6 +109,9 @@ document.write("Last Published: " + document.lastModified); + - +

    Users

    If you use Solr, please subscribe to the Solr user mailing list.

    @@ -265,7 +268,7 @@ document.write("Last Published: " + document.lastModified);
    - +

    Developers

    If you'd like to contribute to Solr, please subscribe to the @@ -301,7 +304,7 @@ document.write("Last Published: " + document.lastModified);

    - +

    Commits

    If you'd like to see changes made in Solr's version control system @@ -343,5 +346,18 @@ document.write("Last Published: " + document.lastModified); |end bottomstrip +-->

    + diff --git a/solr/site/mailing_lists.pdf b/solr/site/mailing_lists.pdf index 7cb3882545b..5a3e256c614 100755 Binary files a/solr/site/mailing_lists.pdf and b/solr/site/mailing_lists.pdf differ diff --git a/solr/site/skin/basic.css b/solr/site/skin/basic.css index 4ed58b99ae7..eb24c326c6c 100755 --- a/solr/site/skin/basic.css +++ b/solr/site/skin/basic.css @@ -163,4 +163,4 @@ p { .codefrag { font-family: "Courier New", Courier, monospace; font-size: 110%; -} +} \ No newline at end of file diff --git a/solr/site/skin/print.css b/solr/site/skin/print.css index 8916b9fc01e..aaa99319acd 100755 --- a/solr/site/skin/print.css +++ b/solr/site/skin/print.css @@ -51,4 +51,4 @@ a:link, a:visited { acronym { border: 0; -} +} \ No newline at end of file diff --git a/solr/site/skin/profile.css b/solr/site/skin/profile.css index ca72cdbd10b..2ed95546ec6 100755 --- a/solr/site/skin/profile.css +++ b/solr/site/skin/profile.css @@ -172,4 +172,4 @@ a:hover { color:#6587ff} } - + \ No newline at end of file diff --git a/solr/site/skin/screen.css b/solr/site/skin/screen.css index 4e2e040c84a..ef5215306db 100755 --- a/solr/site/skin/screen.css +++ b/solr/site/skin/screen.css @@ -584,4 +584,4 @@ p.instruction { list-style-image: url('../images/instruction_arrow.png'); list-style-position: outside; margin-left: 2em; -} +} \ No newline at end of file diff --git a/solr/site/tutorial.html b/solr/site/tutorial.html index bb1e9d80bc0..94d391b46d3 100755 --- a/solr/site/tutorial.html +++ b/solr/site/tutorial.html @@ -3,7 +3,7 @@ - + Solr tutorial @@ -109,6 +109,9 @@ document.write("Last Published: " + document.lastModified); + - +

    Overview

    @@ -284,7 +287,7 @@ schema, and some sample data.

    - +

    Requirements

    @@ -308,7 +311,7 @@ To follow along with this tutorial, you will need...

    - +

    Getting Started

    @@ -356,7 +359,7 @@ You can see that the Solr is running by loading +

    Indexing Data

    @@ -391,7 +394,7 @@ Clicking the "Search" button should take you to the following URL...

    -http://localhost:8983/solr/select/?q=solr&start=0&rows=10&indent=on +http://localhost:8983/solr/select/?q=solr&start=0&rows=10&indent=on

    @@ -471,7 +474,7 @@ SimplePostTool: COMMITting Solr index changes.. - +

    Updating Data

    @@ -503,7 +506,7 @@ Go ahead and edit the existing XML files to change some of the data, and re-run the java -jar post.jar command, you'll see your changes reflected in subsequent searches.

    - +

    Deleting Data

    You can delete data by POSTing a delete command to the update URL and specifying the value of the document's unique key field, or a query that matches multiple documents (be careful with that one!). Since these commands @@ -520,7 +523,7 @@ in subsequent searches.

    Now re-execute the previous search and verify that no matching documents are found. Also revisit the statistics page and observe the changes in both the UPDATE_HANDLERS section and the CORE section.

    Here is an example of using delete-by-query to delete anything with - DDR in the name:

    + DDR in the name:

    java -Ddata=args -jar post.jar "<delete><query>name:DDR</query></delete>"

    Commit can be an expensive operation so it's best to make many changes to an index in a batch and then send the commit command at the end. There is also an optimize command that does the same thing as commit, @@ -532,7 +535,7 @@ in subsequent searches.

    - +

    Querying Data

    @@ -544,26 +547,26 @@ in subsequent searches.

    Solr provides a query form within the web admin interface that allows setting the various request parameters and is useful when testing or debugging queries.

    - +

    Sorting

    Solr provides a simple method to sort on one or more indexed fields. @@ -572,15 +575,15 @@ in subsequent searches.

    @@ -590,11 +593,11 @@ in subsequent searches. @@ -604,7 +607,7 @@ in subsequent searches. @@ -615,7 +618,7 @@ in subsequent searches. - +

    Highlighting

    @@ -631,7 +634,7 @@ in subsequent searches.

    -...&q=video card&fl=name,id&hl=true&hl.fl=name,features +...&q=video card&fl=name,id&hl=true&hl.fl=name,features

    @@ -642,7 +645,7 @@ in subsequent searches. - +

    Faceted Search

    @@ -656,7 +659,7 @@ in subsequent searches.

    -...&q=*:*&facet=true&facet.field=cat +...&q=*:*&facet=true&facet.field=cat

    @@ -669,7 +672,7 @@ in subsequent searches.

    -...&q=*:*&facet=true&facet.field=cat&facet.field=inStock +...&q=*:*&facet=true&facet.field=cat&facet.field=inStock

    @@ -679,7 +682,7 @@ in subsequent searches.

    -...&q=ipod&facet=true&facet.query=price:[0 TO 100]&facet.query=price:[100 TO *] +...&q=ipod&facet=true&facet.query=price:[0 TO 100]&facet.query=price:[100 TO *]

    @@ -687,7 +690,7 @@ in subsequent searches.

    -...&q=*:*&facet=true&facet.date=manufacturedate_dt&facet.date.start=2004-01-01T00:00:00Z&facet.date.end=2010-01-01T00:00:00Z&facet.date.gap=+1YEAR +...&q=*:*&facet=true&facet.date=manufacturedate_dt&facet.date.start=2004-01-01T00:00:00Z&facet.date.end=2010-01-01T00:00:00Z&facet.date.gap=+1YEAR

    @@ -701,7 +704,7 @@ in subsequent searches. - +

    Search UI

    @@ -719,7 +722,7 @@ in subsequent searches. - +

    Text Analysis

    @@ -747,23 +750,23 @@ in subsequent searches.

    • A search for - power-shot + power-shot matches PowerShot, and - adata + adata matches A-DATA due to the use of WordDelimiterFilter and LowerCaseFilter.
    • A search for - features:recharging + features:recharging matches Rechargeable due to stemming with the EnglishPorterFilter.
    • A search for - "1 gigabyte" + "1 gigabyte" matches things with GB, and the misspelled - pixima + pixima matches Pixma due to use of a SynonymFilter.
    • @@ -772,7 +775,7 @@ in subsequent searches.

      A full description of the analysis components, Analyzers, Tokenizers, and TokenFilters available for use is here.

      - +

      Analysis Debugging

      There is a handy analysis debugging page where you can see how a text value is broken down into words, @@ -780,28 +783,28 @@ in subsequent searches.

      -This +This shows how "Canon Power-Shot SD500" would be indexed as a value in the name field. Each row of the table shows the resulting tokens after having passed through the next TokenFilter in the analyzer for the name field. Notice how both powershot and power, shot are indexed. Tokens generated at the same position are shown in the same column, in this case shot and powershot.

      -

      Selecting verbose output +

      Selecting verbose output will show more details, such as the name of each analyzer component in the chain, token positions, and the start and end positions of the token in the original text.

      -

      Selecting highlight matches +

      Selecting highlight matches when both index and query values are provided will take the resulting terms from the query value and highlight all matches in the index value analysis.

      -Here +Here is an example of stemming and stop-words at work.

    - +

    Conclusion

    @@ -859,5 +862,18 @@ document.write("Last Published: " + document.lastModified); |end bottomstrip +-->

    + diff --git a/solr/site/tutorial.pdf b/solr/site/tutorial.pdf index 8918d10d039..84df7a5aee9 100755 Binary files a/solr/site/tutorial.pdf and b/solr/site/tutorial.pdf differ diff --git a/solr/site/version_control.html b/solr/site/version_control.html index 64774408d77..ca835b2eab3 100755 --- a/solr/site/version_control.html +++ b/solr/site/version_control.html @@ -3,7 +3,7 @@ - + Solr Version Control System @@ -109,6 +109,9 @@ document.write("Last Published: " + document.lastModified); +
    - +

    Overview

    @@ -251,7 +254,7 @@ document.write("Last Published: " + document.lastModified);

    - +

    Web Access (read-only)

    @@ -262,7 +265,7 @@ document.write("Last Published: " + document.lastModified);

    - +

    Anonymous Access (read-only)

    @@ -274,7 +277,7 @@ document.write("Last Published: " + document.lastModified);

    - +

    Committer Access (read-write)

    @@ -309,5 +312,18 @@ document.write("Last Published: " + document.lastModified); |end bottomstrip +-->

    + diff --git a/solr/site/version_control.pdf b/solr/site/version_control.pdf index e917b70899d..97eb0ff972c 100755 Binary files a/solr/site/version_control.pdf and b/solr/site/version_control.pdf differ