On 2/9/11 3:47 PM, Tommaso Teofili wrote:
regarding asserts in the initialize() method they can be safely removed as they 
were put there mainly for debugging purpose, however the initialization of the 
Consumer would fail if such params are null or badly defined as you can see 
inside the createServer(type,path) and inside the 
FieldMappingReader.getConf(path) methods

Lets open a jira for this one.
the cas element in the mapping file is an optional one and I thought it was 
useful to track the cas which delivered information, in the sample file it gets 
mapped inside an id field but it doesn't mean it MUST be unique; however that 
is optional and maybe the toString() method isn't the best one to store the cas 
information, but I still think it makes sense to not loose such an information.

I believe in the very most cases it is really not unique. People can have a FS in the cas which contains a unique id, that can be easily mapped to an id field in solr. The current implementation can do that already. I also believe the toString value it not all helpful to debug anything. You might want to log debug information into the CAS. If you wish to keep that in solr, it would be possible to simply map these FSes.

I agree with the need to switch to the CAS API
Then lets open a jira for it.
I agree also regarding the enhancing the exception handling for debugging 
errors; if commit fails I think that should be handled the same way as an add() 
fails otherwise it should be created a commit policy (i.e. a cache of documents 
previously added to try to re-send them) parameter but I think it's out of the 
scope of a basic Solrcas implementation and more related to how Solr handles 
commit errors
I'd introduce the already discussed autocommit configuration parameter 
(boolean) to indicate if Solrcas should also send a commit to the SolrServer 
(it may also make sense to create a third value for this param called 'destroy' 
that would trigger the commit only on the destroy() method even if in that case 
any errors during the commit could not be recovered)

When there is not a unique id the document will be added again into solr when commit failed the first time. Not sure what is the best way to handle these errors. In some cases you might just want to ignore it, in other you might want to retry. I also wonder if autocommit is not the best option when there is a massive amount of documents streamed to solr from multiple
uima pipelines. Do you have some experience here ?
regarding the EmbeddedSolrServer I agree that it's generally not a top option 
in production but I am working now with a Solr project where network latency 
has a significance impact (being Solr the best solution anyways) and I'd get a 
considerable advantage if I can query it avoiding HTTP requests that way, 
however since the main way to query Solr is via REST calls I have no objections 
removing it

Sounds good, lets use it for testing only. We also need to enhance the test. We should add a document and then retrieve
it to see that it is in solr as expected.

Do you want to open the jiras yourself ?

Jörn

Reply via email to