This is an automated email from the ASF dual-hosted git repository.
paulk pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/groovy-website.git
The following commit(s) were added to refs/heads/asf-site by this push:
new a0cfa25 draft blog about using lucene with groovy (minor tweaks)
a0cfa25 is described below
commit a0cfa25daed8f823e8fd6577a0065ea478be04da
Author: Paul King <[email protected]>
AuthorDate: Tue Nov 19 07:14:03 2024 +1000
draft blog about using lucene with groovy (minor tweaks)
---
site/src/site/blog/groovy-lucene.adoc | 31 +++++++++++++++----------------
1 file changed, 15 insertions(+), 16 deletions(-)
diff --git a/site/src/site/blog/groovy-lucene.adoc
b/site/src/site/blog/groovy-lucene.adoc
index 25ae523..7b43c29 100644
--- a/site/src/site/blog/groovy-lucene.adoc
+++ b/site/src/site/blog/groovy-lucene.adoc
@@ -190,23 +190,23 @@ Let's now tokenize our documents and let Lucene index
them.
var analyzer = new ApacheProjectAnalyzer() // <1>
var indexDir = new ByteBuffersDirectory() // <2>
var config = new IndexWriterConfig(analyzer)
-var writer = new IndexWriter(indexDir, config)
var blogBaseDir = '/projects/apache-websites/groovy-website/site/src/site/blog'
-new File(blogBaseDir).traverse(nameFilter: ~/.*\.adoc/) { file ->
- file.withReader { br ->
- var document = new Document()
- var fieldType = new FieldType(stored: true,
- indexOptions:
IndexOptions.DOCS_AND_FREQS_AND_POSITIONS_AND_OFFSETS,
- storeTermVectors: true,
- storeTermVectorPositions: true,
- storeTermVectorOffsets: true)
- document.add(new Field('content', br.text, fieldType)) // <3>
- document.add(new StringField('name', file.name, Field.Store.YES)) //
<4>
- writer.addDocument(document)
+new IndexWriter(indexDir, config).withCloseable { writer ->
+ new File(blogBaseDir).traverse(nameFilter: ~/.*\.adoc/) { file ->
+ file.withReader { br ->
+ var document = new Document()
+ var fieldType = new FieldType(stored: true,
+ indexOptions:
IndexOptions.DOCS_AND_FREQS_AND_POSITIONS_AND_OFFSETS,
+ storeTermVectors: true,
+ storeTermVectorPositions: true,
+ storeTermVectorOffsets: true)
+ document.add(new Field('content', br.text, fieldType)) // <3>
+ document.add(new StringField('name', file.name, Field.Store.YES))
// <4>
+ writer.addDocument(document)
+ }
}
}
-writer.close()
var reader = DirectoryReader.open(indexDir)
var searcher = new IndexSearcher(reader)
@@ -224,7 +224,6 @@ results.scoreDocs.each { ScoreDoc doc -> // <7>
println "${document.get('name')}: ${found*.replaceAll('\n', '
').countBy()}"
found.each { histogram[it.replaceAll('\n', ' ')] += 1 } // <9>
}
-
println()
histogram.sort { e -> -e.value }.each { k, v -> // <10>
@@ -233,8 +232,8 @@ histogram.sort { e -> -e.value }.each { k, v -> // <10>
}
List<String> handleHit(ScoreDoc hit, Query query, DirectoryReader dirReader) {
// <11>
- boolean phraseHighlight = Boolean.TRUE
- boolean fieldMatch = Boolean.TRUE
+ boolean phraseHighlight = true
+ boolean fieldMatch = true
FieldQuery fieldQuery = new FieldQuery(query, dirReader, phraseHighlight,
fieldMatch)
FieldTermStack stack = new FieldTermStack(dirReader, hit.doc, 'content',
fieldQuery)
FieldPhraseList phrases = new FieldPhraseList(stack, fieldQuery)