Thanks.
Could you also post the code for RDFinder.Search() and the output
from query.toString() when text is "PHILIPCIMIANO"?
-h
On 27-May-2009, at 12:40 PM, Marco Lazzara wrote:
String[] fieldsearch = new String[] {"name", "synonyms", "propIn"};
RDFinder rdfind = new RDFinder("/home/marco/
testIndex",fieldsearch);
try {
this.paths = this.rdfind.Search(text, "path");
} catch (ParseException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
Marco Lazzara
2009/5/27 N. Hira <nh...@cognocys.com>
Okay -- that helps.
So we know that searching the same files with Luke works, but with
the web
app does not. Can you please re-post the fragment of code that
opens your
index and uses the query?
If you haven't already done this, could you also use query.toString
() to
confirm the query?
Thanks.
-h
On 27-May-2009, at 12:14 PM, Marco Lazzara wrote:
NO.the app creates the index in a folder and I run the query in
that
folder.
For example if I decide to create the folder in /home/marco/
testIndex
,obviously I run the query on /home/marco/testIndex
if I decide to create the folder in /home/marco/
RDFLUCENE ,obviously I run
the query on /home/marco/RDFLUCENE
But I ALWAYS obtain no results.
In order to understand how tomcat works with lucene I made an
experiment:
I
deleted all files in the index and I tried to run the query in
the empty
folder and It fails with:
no segments* file found in org.apache.lucene.store
It means that Lucene recognizes the index (when it isn't empty)
but on the
webapp It obtains no result
Marco Lazzara
2009/5/27 N. Hira <nh...@cognocys.com>
Okay -- if the problem is not the number of results, then let's
clarify
the
problem:
1. You create an index in something like:
/home/marco/testIndex
2. You copy over the directory to something like:
/home/marco/RDFIndexLucene
3. When you run Tomcat, your "searcher" tries to open the index
at 2.
above (using the full path, including the leading slash) and
fails with:
no segments* file found in org.apache.lucene.store
Could you please confirm that this is the problem you are trying to
resolve? If no, then please correct what I have stated above.
-h
On 27-May-2009, at 11:22 AM, Marco Lazzara wrote:
In my app I obtain 3 results.But I think is not a problem
Marco Lazzara
2009/5/27 Erick Erickson <erickerick...@gmail.com>
StandardAnalyzer is fine. I loaded your index into Luke and
there is
exactly
one document with philipcimiano in the name field.
There is only one document that has researcher in the name field.
Both of these documents (using StandardAnalyzer) return one
document (doc 12 for PHILIPCIMIANO and doc 4 for RESEARCHER)
as I would expect.
So what is the behavior you expect?
Best
Erick
On Wed, May 27, 2009 at 11:47 AM, Marco Lazzara <
marco.lazz...@gmail.com
wrote:
I attache the file testIndex.zip.Run the query with :
PHILIPCIMIANO,
or
RESEARCHER.
I use StandardAnalyzer.Is it a problem?
Marco Lazzara
2009/5/27 N. Hira <nh...@cognocys.com>
Not sure if this applies here, but that tends to happen when
the
analyzer
you use for indexing is different from the one used in Luke
or you're
running into character set issues. Are you using the
StandardAnalyzer
in
both cases?
Also, could you post an example of the query you are
trying? There
are
some very smart people who check this list and they may be
able to
help
you
if they had a "sample" of your index, i.e., create a 10-
document index
and
make it available for download so people can look at it for you?
-h
On 27-May-2009, at 2:02 AM, Marco Lazzara wrote:
* I see that you have reported the creation of 3 files, but
does
Luke
recognize those files as an index and do you see the
Documents you
expect
to
see in this index?*
Luke recognizes those files and I see those documents in
this index
but
I
observed that when I run the query Luke finds (for example)
only 3
files
of
5.
Any ideas???
Marco Lazzara
2009/5/27 N Hira <nh...@cognocys.com>
Sorry for the confusion -- I checked the archive and I
could not
find
a
message where you have been able to open the index using Luke.
Have you been able to do that? I see that you have
reported the
creation
of 3 files, but does Luke recognize those files as an
index and do
you
see
the Documents you expect to see in this index?
This is the official site for Luke:
http://www.getopt.org/luke/
-h
----- Original Message ----
From: Marco Lazzara <marco.lazz...@gmail.com>
To: java-user@lucene.apache.org
Sent: Tuesday, May 26, 2009 4:59:14 PM
Subject: Re: Searching index problems with tomcat
*Does the part of the web app that is responsible for
searching
have
permissions to read "/home/marco/testIndex"?*
Yes It does.It can read everywhere.
*Could you add some code to your searching app to print
out the
directory
listing to confirm?*
I've already posted them.See May 19
*Also, I may have missed this posting, but could you
provide the
answer
from
Step 3. of mhall's suggestion on 22-May, i.e., did you find
the data
that
you expected in your index using Luke?*
yes.there are 3 files in the index.see May 24
-rw-r--r-- 1 marco marco 4043 2009-05-24 12:00 _5.cfs
-rw-r--r-- 1 marco marco 58 2009-05-24 12:00 segments_c
-rw-r--r-- 1 marco marco 20 2009-05-24 12:00 segments.gen
2009/5/26 N Hira <nh...@cognocys.com>
Marco,
Does the part of the web app that is responsible for
searching
have
permissions to read "/home/marco/testIndex"?
Could you add some code to your searching app to print
out the
directory
listing to confirm?
Also, I may have missed this posting, but could you
provide the
answer
from
Step 3. of mhall's suggestion on 22-May, i.e., did you
find the
data
that
you expected in your index using Luke?
Good luck.
-h
----- Original Message ----
From: Marco Lazzara <marco.lazz...@gmail.com>
To: java-user@lucene.apache.org
Sent: Tuesday, May 26, 2009 3:45:38 PM
Subject: Re: Searching index problems with tomcat
I tried different things.I tried to create the index
without the
web
application,I tried to create the index with a webapp and
the
index
was
created without any problem.But the research has alway no
result.
For example,if the folder i'm searching on is empty, the
webapp
cathces
an
exception : "no segments* file found in
org.apache.lucene.store.
ramdirect...@home/marco/testIndex...."
It means that Lucene tries to search in that index but it
fails..maybe
the
index is incorrect for a webapp???
MARCO LAZZARA
2009/5/26 Matthew Hall <mh...@informatics.jax.org>
Right.. so perhaps I'm a bit confused here.
The webapp.. is consuming an index.. yes?
Or, are you trying to create an index via a webapp?
I was assuming that you had some sort of indexing
software that
you
were
using to first build your indexes, which the webapp then
consumes.
Is that your intent?
Sorry I didn't get back to you before this, but it was a
holiday
over
here.
Marco Lazzara wrote:
Ok i solve the problem I've posted before,I run the web
app..It
creates
the
index in folder /home/marco/testIndex with 3 files
-rw-r--r-- 1 marco marco 4043 2009-05-24 12:00 _5.cfs
-rw-r--r-- 1 marco marco 58 2009-05-24 12:00 segments_c
-rw-r--r-- 1 marco marco 20 2009-05-24 12:00
segments.gen
but when I run the query I obtain no results!!!!
Why in my folder there are only 3 files???
Marco Lazzara
2009/5/24 Marco Lazzara <marco.lazz...@gmail.com>
Hi.At step 2 I have only 3 files in the folder,but i
think is
not
a
problema.I've tried to create the index in the web app e not
only
in
the
standalone application but something failes.Tomcat
report this
error
java.io.FileNotFoundException: no segments* file found in
org.apache.lucene.store.ramdirect...@1c2ec05: files:
at
org.apache.lucene.index.SegmentInfos
$FindSegmentsFile.run(SegmentInfos.java:604)
at
org.apache.lucene.index.DirectoryIndexReader.open
(DirectoryIndexReader.java:111)
at org.apache.lucene.index.IndexReader.open
(IndexReader.java:316)
at
org.apache.lucene.index.IndexReader.open
(IndexReader.java:227)
at
org.apache.lucene.search.IndexSearcher.<init>
(IndexSearcher.java:55)
at org.utils.synonym.WordNetSynonymEngine.<init>(Unknown
Source)
at org.indexing.AlternativeRDFIndexing.<init>(Unknown Source)
at org.gui.CreazioneIndici.run2(Unknown Source)
at org.gui.Query.main(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0
(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
com.sun.javaws.Launcher.executeApplication
(Launcher.java:1321)
at com.sun.javaws.Launcher.executeMainClass(Launcher.java:1267)
at com.sun.javaws.Launcher.doLaunchApp(Launcher.java:1066)
at com.sun.javaws.Launcher.run(Launcher.java:116)
at java.lang.Thread.run(Thread.java:619)
this changes everytime one time it is: no segments*
file found
in
org.apache.lucene.store.ramdirect...@*1c2ec05*
the second it is no segments* file found in
org.apache.lucene.store.ramdirect...@*170b819*
On the standalone it works perfectly.
Marco Lazzara
2009/5/22 Matthew Hall <mh...@informatics.jax.org>
humor me.
Open up your indexing software package.
Step 1: In all places where you reference your index,
replace
whatever
the
heck you have there with the following EXACT STRING:
/home/marco/testIndex
Do not leave off the leading slash.
After you have made these changes to the indexing
software,
recompile
and
create your indexes.
Step 2: After your indexing process completes do the
following:
cd /home/marco/testIndex/index
You should see files in there, they will look
something like
this:
drwxrwxr-x 3 mhall progs 4.0K May 18 11:19 ..
-rw-rw-r-- 1 mhall progs 80 May 21 16:47
_9j7.fnm
-rw-rw-r-- 1 mhall progs 4.1G May 21 16:50
_9j7.fdt
-rw-rw-r-- 1 mhall progs 434M May 21 16:50
_9j7.fdx
-rw-rw-r-- 1 mhall progs 280M May 21 16:52
_9j7.frq
-rw-rw-r-- 1 mhall progs 108M May 21 16:52
_9j7.prx
-rw-rw-r-- 1 mhall progs 329M May 21 16:52
_9j7.tis
-rw-rw-r-- 1 mhall progs 4.7M May 21 16:52
_9j7.tii
-rw-rw-r-- 1 mhall progs 108M May 21 16:52
_9j7.nrm
-rw-rw-r-- 1 mhall progs 47 May 21 16:52
segments_9je
-rw-rw-r-- 1 mhall progs 20 May 21 16:52
segments.gen
You have now confirmed that you are actually creating indexes.
And
the
indexes you are creating exist at EXACTLY the place
you have
asked
them
to.
Step 3: Then.. go download luke, and open these indexes.
Perform
a
query
on them, confirm that the data you want is actually IN the
indexes.
Step 4: Now, open up your standalone application, and replace
whatever
you
are using in the to open the index with the SAME string
I have
listed
above.
Perform a search, verify that the indexes are there, and
actually
return
values.
Step 5: Lastly, go into your web application and again
replace
the
path
with the one I have above, recompile, and perform a
search.
Verify
that
the
indexes are actually THERE and searchable.
This.. damn well SHOULD work, if it doesn't it is likely
pointing
to
some
other issues in what you have setup. For example
your tomcat
instance
could
perhaps not have permission to read the lucene indexes
directory.
You
should be able to tell this in the tomcat logs, BUT
don't do
this
yet.
Carefully and fully follow the steps I have outlined
for you,
and
then
you
have chased down the full debugging path for this.
If this yields nothing for you, I'd be happy to take
a closer
look
at
your
source code, but until then give this a shot.
Oh.. if it fails, please post back EXACTLY which
steps in the
above
outlined process failed for you, as that will be really really
helpful.
Matt
Marco Lazzara wrote:
I dont't know hot to solve the problem..I've tried all
rationals
things.Maybe the last thing is to try to index not with
FSDirectory
but
with
something else.I have to peruse the api documentation.
But.....IF IT WAS A LUCENE'S BUG???
2009/5/22 Matthew Hall <mh...@informatics.jax.org>
because that's the default index write behavior.
It will create any directory that you ask it to.
Matt
Marco Lazzara wrote:
ok.I understand what you really mean but It
doesn't work.
I understand one thing.For example When i try to
open an
index
in
the
following location : "RDFIndexLucene/" but the folder
doesn't
exist,*Lucene
create an empty folder named "RDFIndexLucene"* in my home
folder...WHY???
MARCO LAZZARA
2009/5/22 Matthew Hall <mh...@informatics.jax.org>
For writing indexes?
Well I guess it depends on what you want.. but I
personally
use
this:
(2.3.2 API)
File INDEX_DIR = "/data/searchtool/
thisismyindexdirectory"
Analyzer analyzer = new
WhateverConcreteAnalyzerYouWant();
writer = new IndexWriter(/INDEX_DIR/, /analyzer/,
true);
Your best bet would be to peruse the API docs of
whatever
lucene
version
you are using.
However, I'm still pretty sure this ISN'T your
actual
issue
here.
Looking at your "full path" example those still seem to
be by
reference
to
me. Let me be more specific and tell you EXACTLY
what I
mean
by
that,
Lets say you are running your program in the
following
directory:
/home/test/app/
Trying to open an index like you have below will
effectively
be
trying
to
open an index in the following location:
/home/test/app/home/marco/RdfIndexLucene
What I think you MEAN to be doing is:
/home/marco/RdfIndexLucene
That leading slash is VERY VERY important, as its
the
entire
difference
between an relative path and an absolute one.
Matt
Marco Lazzara wrote:
I was talking with my teacher.
Is it correct to use FSDirectory?Could you
please look
again
at
the
code
I've posted here??
Should I choose a different way to Indexing ??
Marco Lazzara
2009/5/22 Ian Lea <ian....@gmail.com>
OK. I'd still like to see some evidence, but
never
mind.
Next suggestion is the old standby - cut the
code down
to
the
absolute
minimum to demonstrate the problem and post it here. I
know
you've
already posted some code, but maybe not all of it, and
definitely
not
cut down to the absolute minimum.
--
Ian.
On Thu, May 21, 2009 at 10:48 PM, Marco Lazzara <
marco.lazz...@gmail.com
wrote:
_I strongly suggest that you use a full path name
and/or
provide
some
evidence that your readers and writers are using the same
directory
and thus lucene index.
_
I try a full path like home/marco/
RdfIndexLucene,even
media/disk/users/fratelli/RDFIndexLucene.But
nothing is
changed.
MARCOLAZZARA
_
_
Its been a few days, and we haven't heard
back about
this
issue,
can
we assume that you fixed it via using fully qualified
paths
then?
Matt
Ian Lea wrote:
Marco
You haven't answered Matt's question about
where you
are
running
it
from. Tomcat's default directory may well
not be the
same
as
yours.
I strongly suggest that you use a full path name and/or
provide
some
evidence that your readers and writers are using the
same
directory
and thus lucene index.
--
Ian.
On Wed, May 20, 2009 at 9:59 AM, Marco Lazzara
<marco.lazz...@gmail.com> wrote:
I've posted the indexing part,but I don't
use this
in
my
app.After
I
create the index,I put that in a folder like
/home/marco/RDFIndexLucece
and when I run the query I'm only searching
(and not
indexing).
String[] fieldsearch = new String[] {"name",
"synonyms",
"propIn"};
//RDFinder rdfind = new
RDFinder("RDFIndexLucene/",fieldsearch);
TreeMap<Integer, ArrayList<String>> paths;
try {
this.paths = this.rdfind.Search(text,
"path");
} catch (ParseException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
Marco Lazzara
Sorry, anyhow looking over this quickly
here's a
summarization
of
what
I see:
You have documents in your index that look
like the
following:
name which is indexed and stored.
synonyms which are indexed and stored
path, which is stored but not indexed
propin, which is stored and indexed
propinnum, which is stored but not indexed
and ... vicinity I guess which is stored
but not
indexed
For an analyzer you are using Standard analyzer
(which
considering
all
the Italian? is an interesting choice.)
And you are opening your index using
FSDirectory, in
what
appears
to
be a by reference fashion (You don't have a
fully
qualified
path
to
where your index is, you are ASSUMING that
its in
the
same
directory
as this code, unless FSDirectory is not implemented as
I
think
...
[Messaggio troncato]
---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org
For additional commands, e-mail: java-user-h...@lucene.apache.org