Hi,
some thoughts about meta data.
We agree that we try to minimize the usage of meta data, to keep
performance high.
Since we descide to have meta data separated, I was thinking of a
meta data db as we have a crawl db today.
I asking my self where we will need meta data, so it makes sense to
have them separated or not.
My personal list:
+ generation // having meta data here to decide if a page should be
fetched or not
+ fetching // here I'm not sure, my we need meta data for fecthing
but it may be would be great to store session or authentication
informations can be used until fetching.
However until fetching and parsing meta data for a url can be created.
+ updating // until updating i was planing to overwrite the old meta
data with the new data, I had the idea to use a system.currentmillis
as a stored timestamp to identify the newer meta data, but I have no
idea if the current millis are fast enough for the job, any thoughts?
+ indexing // to add url meta data into the index.
Well, looking to this list, I'm more and more believe that it would
be a better idea to store the meta data into the CrawlDatum object
directly. It save a lot of code changes and we need meta data
everywhere anyway.
I understand that for performance reasons people do not like meta
data, but please let me repeat we can add meta data into crawldb in a
way that does not slowdown crawldatum processing in case no meta data
are used.
Also I believe that meta data support is one of the most important
feature for our users since most users run a small size special
interest search engine. In any case getting extra data into the index
is the most asked nutch customizing question in the user list.
So why not adding meta data directly to crawlDatum?
Stefan