jackrabbit-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bilobag <bilo...@hotmail.com>
Subject Re: How Can I catch the "excerpt" value from highlighting?
Date Fri, 10 Aug 2007 15:07:53 GMT

Hi, I am having an issue getting my query to return the excerpt from a binary
file.  The following is the query i'm using:

query:
"//*[(@jcr:primaryType = 'cwe:file') and jcr:contains(jcr:content,
'apple')]/rep:excerpt() order by @jcr:score desc"

java:
RowIterator rowIter = qresult.getRows();		
String[] columns = qresult.getColumnNames();
		
while(rowIter.hasNext()) {
	Row row = rowIter.nextRow();
	log.debug("**********text excerpt=" +
row.getValue("rep:excerpt(.)").getString());
}


output:

javax.jcr.ItemNotFoundException: rep:excerpt(.)
	at
org.apache.jackrabbit.core.query.lucene.RowIteratorImpl$RowImpl.getValue(RowIteratorImpl.java:291)
	at
org.bmpcoe.cwe5.service.impl.SearchServiceImpl.getSearchResults(SearchServiceImpl.java:110)
	at
org.bmpcoe.cwe5.service.SearchServiceTests.testGetSearchResults(SearchServiceTests.java:129)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at junit.framework.TestCase.runTest(TestCase.java:168)
	at junit.framework.TestCase.runBare(TestCase.java:134)
	at
org.springframework.test.ConditionalTestCase.runBare(ConditionalTestCase.java:69)
	at junit.framework.TestResult$1.protect(TestResult.java:110)
	at junit.framework.TestResult.runProtected(TestResult.java:128)
	at junit.framework.TestResult.run(TestResult.java:113)
	at junit.framework.TestCase.run(TestCase.java:124)
	at junit.framework.TestSuite.runTest(TestSuite.java:232)
	at junit.framework.TestSuite.run(TestSuite.java:227)
	at
org.junit.internal.runners.OldTestClassRunner.run(OldTestClassRunner.java:76)
	at junit.framework.JUnit4TestAdapter.run(JUnit4TestAdapter.java:32)
	at
org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:421)
	at
org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.executeInVM(JUnitTask.java:1245)
	at
org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.execute(JUnitTask.java:814)
	at
org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.executeOrQueue(JUnitTask.java:1657)
	at
org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.execute(JUnitTask.java:764)
	at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at
org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
	at org.apache.tools.ant.Task.perform(Task.java:348)
	at org.apache.tools.ant.Target.execute(Target.java:357)
	at org.apache.tools.ant.Target.performTasks(Target.java:385)
	at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
	at org.apache.tools.ant.Project.executeTarget(Project.java:1298)
	at
org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
	at
org.eclipse.ant.internal.ui.antsupport.EclipseDefaultExecutor.executeTargets(EclipseDefaultExecutor.java:32)
	at org.apache.tools.ant.Project.executeTargets(Project.java:1181)
	at
org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.run(InternalAntRunner.java:423)
	at
org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.main(InternalAntRunner.java:137)

workspace.xml:

<SearchIndex class="org.apache.jackrabbit.core.query.lucene.SearchIndex">
        
	
	
    	
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
        </SearchIndex>

Now I tried using rep:excerpt(.) with the period in the parenthesis.  I have
also tried to put a specific property in the parenthesis, but i seem to get
a query error each time that seems like my syntax is wrong.  When i use only
rep:excerpt() without anything in the parenthesis, the query works but only
returns </ excerpt> with no text.  I am using Jackrabbit 1.3.  I have
already configured my workspace.xml to support highlighting as seen above. 
So my questions are:  

1) Am I correctly querying for the excerpt?
2) Can I put a property in the rep:excerpt(jcr:content) like so to return an
excerpt from the property I specify?
3)  Is this feature supported in the Jackrabbit version that I'm using?
4)  When I do get the excerpt working, I have to use the rowIterator to get
the excerpt.  If i want to get the nodes using the nodeIterator and get an
excerpt, do I have to use the rowIterator and nodeIterator together or is
there an easier way to get both without looping through 2 iterators?


Marcel Reutegger wrote:
> 
> Hi Alexandre,
> 
> Alexandre Martins wrote:
>> I´m trying to use the highlighting, but i dont know how can I take the
>> value... as a property?
>> element.getProperty("jcr:excerpt").getString()
> 
> please note that the prefix is wrong and that it is a function:
> 
> row.getProperty("rep:excerpt(.)").getString();
> 
>> Other question,
>> Where in a configuration file i need to put this line "
>> name="supportHighlighting" value="true"/>"?
> 
> The workspace.xml file in
> <your-repository-home-dir>/workspaces/<workspace-name>
> 
> Add it as a child of the SearchIndex element.
> 
> regards
>   marcel
> 
> 

-- 
View this message in context: http://www.nabble.com/How-Can-I-catch-the-%22excerpt%22-value-from-highlighting--tf3709100.html#a12093126
Sent from the Jackrabbit - Users mailing list archive at Nabble.com.


Mime
View raw message