ironsweet / golucene Goto Github PK
View Code? Open in Web Editor NEWGo (Golang) port of Apache Lucene
Home Page: http://hamlet.zhouyiyan.cn/
License: Apache License 2.0
Go (Golang) port of Apache Lucene
Home Page: http://hamlet.zhouyiyan.cn/
License: Apache License 2.0
Hi,
I'd like to thank you for having this in Go especially since it's not always an option for me to use JVM at work, so this is a good option to have.
I've continued to add similarity models here and then some, which wasn't and isn't part of Lucene, and will continue to add learning-to-rank feedback models, but before that, it looks like I've hit a snag when testing some simple things.
First one is, it doesn't seem to flush some old index files when I added a three word doc to the index like 'this is test'; It shows some flushing error in the terminal (it deleted the .nvd and nvm file though).
The current 'go vet' includes checks for shifts larger than the width of the variable being shifted, and it picks up a large number of issues in the above files.
I'm not sure if they're all errors, but they're probably worth looking at
core/util/packed/bulkOperation10.go:76: (byte3 & 3) too small for shift of 8
core/util/packed/bulkOperation10.go:142: (byte3 & 3) too small for shift of 8
core/util/packed/bulkOperation11.go:112: (byte2 & 3) too small for shift of 9
core/util/packed/bulkOperation11.go:126: (byte6 & 1) too small for shift of 10
core/util/packed/bulkOperation11.go:134: (byte9 & 7) too small for shift of 8
core/util/packed/bulkOperation11.go:236: (byte2 & 3) too small for shift of 9
core/util/packed/bulkOperation11.go:250: (byte6 & 1) too small for shift of 10
core/util/packed/bulkOperation11.go:258: (byte9 & 7) too small for shift of 8
core/util/packed/bulkOperation12.go:50: (byte1 & 15) too small for shift of 8
core/util/packed/bulkOperation12.go:90: (byte1 & 15) too small for shift of 8
core/util/packed/bulkOperation13.go:110: (byte1 & 7) too small for shift of 10
core/util/packed/bulkOperation13.go:120: (byte4 & 1) too small for shift of 12
core/util/packed/bulkOperation13.go:126: (byte6 & 15) too small for shift of 9
core/util/packed/bulkOperation13.go:136: (byte9 & 3) too small for shift of 11
core/util/packed/bulkOperation13.go:140: (byte11 & 31) too small for shift of 8
core/util/packed/bulkOperation13.go:240: (byte1 & 7) too small for shift of 10
core/util/packed/bulkOperation13.go:250: (byte4 & 1) too small for shift of 12
core/util/packed/bulkOperation13.go:256: (byte6 & 15) too small for shift of 9
core/util/packed/bulkOperation13.go:266: (byte9 & 3) too small for shift of 11
core/util/packed/bulkOperation13.go:270: (byte11 & 31) too small for shift of 8
core/util/packed/bulkOperation14.go:72: (byte1 & 3) too small for shift of 12
core/util/packed/bulkOperation14.go:78: (byte3 & 15) too small for shift of 10
core/util/packed/bulkOperation14.go:82: (byte5 & 63) too small for shift of 8
core/util/packed/bulkOperation14.go:144: (byte1 & 3) too small for shift of 12
core/util/packed/bulkOperation14.go:150: (byte3 & 15) too small for shift of 10
core/util/packed/bulkOperation14.go:154: (byte5 & 63) too small for shift of 8
core/util/packed/bulkOperation15.go:112: (byte1 & 1) too small for shift of 14
core/util/packed/bulkOperation15.go:118: (byte3 & 3) too small for shift of 13
core/util/packed/bulkOperation15.go:124: (byte5 & 7) too small for shift of 12
core/util/packed/bulkOperation15.go:130: (byte7 & 15) too small for shift of 11
core/util/packed/bulkOperation15.go:136: (byte9 & 31) too small for shift of 10
core/util/packed/bulkOperation15.go:142: (byte11 & 63) too small for shift of 9
core/util/packed/bulkOperation15.go:146: (byte13 & 127) too small for shift of 8
core/util/packed/bulkOperation15.go:248: (byte1 & 1) too small for shift of 14
core/util/packed/bulkOperation15.go:254: (byte3 & 3) too small for shift of 13
core/util/packed/bulkOperation15.go:260: (byte5 & 7) too small for shift of 12
core/util/packed/bulkOperation15.go:266: (byte7 & 15) too small for shift of 11
core/util/packed/bulkOperation15.go:272: (byte9 & 31) too small for shift of 10
core/util/packed/bulkOperation15.go:278: (byte11 & 63) too small for shift of 9
core/util/packed/bulkOperation15.go:282: (byte13 & 127) too small for shift of 8
core/util/packed/bulkOperation17.go:110: byte0 too small for shift of 9
core/util/packed/bulkOperation17.go:116: (byte2 & 127) too small for shift of 10
core/util/packed/bulkOperation17.go:122: (byte4 & 63) too small for shift of 11
core/util/packed/bulkOperation17.go:128: (byte6 & 31) too small for shift of 12
core/util/packed/bulkOperation17.go:134: (byte8 & 15) too small for shift of 13
core/util/packed/bulkOperation17.go:140: (byte10 & 7) too small for shift of 14
core/util/packed/bulkOperation17.go:146: (byte12 & 3) too small for shift of 15
core/util/packed/bulkOperation17.go:152: (byte14 & 1) too small for shift of 16
core/util/packed/bulkOperation17.go:152: byte15 too small for shift of 8
core/util/packed/bulkOperation17.go:252: byte0 too small for shift of 9
core/util/packed/bulkOperation17.go:258: (byte2 & 127) too small for shift of 10
core/util/packed/bulkOperation17.go:264: (byte4 & 63) too small for shift of 11
core/util/packed/bulkOperation17.go:270: (byte6 & 31) too small for shift of 12
core/util/packed/bulkOperation17.go:276: (byte8 & 15) too small for shift of 13
core/util/packed/bulkOperation17.go:282: (byte10 & 7) too small for shift of 14
core/util/packed/bulkOperation17.go:288: (byte12 & 3) too small for shift of 15
core/util/packed/bulkOperation17.go:294: (byte14 & 1) too small for shift of 16
core/util/packed/bulkOperation17.go:294: byte15 too small for shift of 8
core/util/packed/bulkOperation18.go:70: byte0 too small for shift of 10
core/util/packed/bulkOperation18.go:76: (byte2 & 63) too small for shift of 12
core/util/packed/bulkOperation18.go:82: (byte4 & 15) too small for shift of 14
core/util/packed/bulkOperation18.go:88: (byte6 & 3) too small for shift of 16
core/util/packed/bulkOperation18.go:88: byte7 too small for shift of 8
core/util/packed/bulkOperation18.go:148: byte0 too small for shift of 10
core/util/packed/bulkOperation18.go:154: (byte2 & 63) too small for shift of 12
core/util/packed/bulkOperation18.go:160: (byte4 & 15) too small for shift of 14
core/util/packed/bulkOperation18.go:166: (byte6 & 3) too small for shift of 16
core/util/packed/bulkOperation18.go:166: byte7 too small for shift of 8
core/util/packed/bulkOperation19.go:112: byte0 too small for shift of 11
core/util/packed/bulkOperation19.go:118: (byte2 & 31) too small for shift of 14
core/util/packed/bulkOperation19.go:126: (byte4 & 3) too small for shift of 17
core/util/packed/bulkOperation19.go:126: byte5 too small for shift of 9
core/util/packed/bulkOperation19.go:132: (byte7 & 127) too small for shift of 12
core/util/packed/bulkOperation19.go:138: (byte9 & 15) too small for shift of 15
core/util/packed/bulkOperation19.go:146: (byte11 & 1) too small for shift of 18
core/util/packed/bulkOperation19.go:146: byte12 too small for shift of 10
core/util/packed/bulkOperation19.go:152: (byte14 & 63) too small for shift of 13
core/util/packed/bulkOperation19.go:158: (byte16 & 7) too small for shift of 16
core/util/packed/bulkOperation19.go:158: byte17 too small for shift of 8
core/util/packed/bulkOperation19.go:260: byte0 too small for shift of 11
core/util/packed/bulkOperation19.go:266: (byte2 & 31) too small for shift of 14
core/util/packed/bulkOperation19.go:274: (byte4 & 3) too small for shift of 17
core/util/packed/bulkOperation19.go:274: byte5 too small for shift of 9
core/util/packed/bulkOperation19.go:280: (byte7 & 127) too small for shift of 12
core/util/packed/bulkOperation19.go:286: (byte9 & 15) too small for shift of 15
core/util/packed/bulkOperation19.go:294: (byte11 & 1) too small for shift of 18
core/util/packed/bulkOperation19.go:294: byte12 too small for shift of 10
core/util/packed/bulkOperation19.go:300: (byte14 & 63) too small for shift of 13
core/util/packed/bulkOperation19.go:306: (byte16 & 7) too small for shift of 16
core/util/packed/bulkOperation19.go:306: byte17 too small for shift of 8
core/util/packed/bulkOperation20.go:50: byte0 too small for shift of 12
core/util/packed/bulkOperation20.go:56: (byte2 & 15) too small for shift of 16
core/util/packed/bulkOperation20.go:56: byte3 too small for shift of 8
core/util/packed/bulkOperation20.go:96: byte0 too small for shift of 12
core/util/packed/bulkOperation20.go:102: (byte2 & 15) too small for shift of 16
core/util/packed/bulkOperation20.go:102: byte3 too small for shift of 8
core/util/packed/bulkOperation21.go:114: byte0 too small for shift of 13
core/util/packed/bulkOperation21.go:122: (byte2 & 7) too small for shift of 18
core/util/packed/bulkOperation21.go:122: byte3 too small for shift of 10
core/util/packed/bulkOperation21.go:128: (byte5 & 63) too small for shift of 15
core/util/packed/bulkOperation21.go:136: (byte7 & 1) too small for shift of 20
core/util/packed/bulkOperation21.go:136: byte8 too small for shift of 12
core/util/packed/bulkOperation21.go:144: (byte10 & 15) too small for shift of 17
core/util/packed/bulkOperation21.go:144: byte11 too small for shift of 9
core/util/packed/bulkOperation21.go:150: (byte13 & 127) too small for shift of 14
core/util/packed/bulkOperation21.go:158: (byte15 & 3) too small for shift of 19
core/util/packed/bulkOperation21.go:158: byte16 too small for shift of 11
core/util/packed/bulkOperation21.go:164: (byte18 & 31) too small for shift of 16
core/util/packed/bulkOperation21.go:164: byte19 too small for shift of 8
core/util/packed/bulkOperation21.go:268: byte0 too small for shift of 13
core/util/packed/bulkOperation21.go:276: (byte2 & 7) too small for shift of 18
core/util/packed/bulkOperation21.go:276: byte3 too small for shift of 10
core/util/packed/bulkOperation21.go:282: (byte5 & 63) too small for shift of 15
core/util/packed/bulkOperation21.go:290: (byte7 & 1) too small for shift of 20
core/util/packed/bulkOperation21.go:290: byte8 too small for shift of 12
core/util/packed/bulkOperation21.go:298: (byte10 & 15) too small for shift of 17
core/util/packed/bulkOperation21.go:298: byte11 too small for shift of 9
core/util/packed/bulkOperation21.go:304: (byte13 & 127) too small for shift of 14
core/util/packed/bulkOperation21.go:312: (byte15 & 3) too small for shift of 19
core/util/packed/bulkOperation21.go:312: byte16 too small for shift of 11
core/util/packed/bulkOperation21.go:318: (byte18 & 31) too small for shift of 16
core/util/packed/bulkOperation21.go:318: byte19 too small for shift of 8
core/util/packed/bulkOperation22.go:72: byte0 too small for shift of 14
core/util/packed/bulkOperation22.go:80: (byte2 & 3) too small for shift of 20
core/util/packed/bulkOperation22.go:80: byte3 too small for shift of 12
core/util/packed/bulkOperation22.go:88: (byte5 & 15) too small for shift of 18
core/util/packed/bulkOperation22.go:88: byte6 too small for shift of 10
core/util/packed/bulkOperation22.go:94: (byte8 & 63) too small for shift of 16
core/util/packed/bulkOperation22.go:94: byte9 too small for shift of 8
core/util/packed/bulkOperation22.go:156: byte0 too small for shift of 14
core/util/packed/bulkOperation22.go:164: (byte2 & 3) too small for shift of 20
core/util/packed/bulkOperation22.go:164: byte3 too small for shift of 12
core/util/packed/bulkOperation22.go:172: (byte5 & 15) too small for shift of 18
core/util/packed/bulkOperation22.go:172: byte6 too small for shift of 10
core/util/packed/bulkOperation22.go:178: (byte8 & 63) too small for shift of 16
core/util/packed/bulkOperation22.go:178: byte9 too small for shift of 8
core/util/packed/bulkOperation23.go:116: byte0 too small for shift of 15
core/util/packed/bulkOperation23.go:124: (byte2 & 1) too small for shift of 22
core/util/packed/bulkOperation23.go:124: byte3 too small for shift of 14
core/util/packed/bulkOperation23.go:132: (byte5 & 3) too small for shift of 21
core/util/packed/bulkOperation23.go:132: byte6 too small for shift of 13
core/util/packed/bulkOperation23.go:140: (byte8 & 7) too small for shift of 20
core/util/packed/bulkOperation23.go:140: byte9 too small for shift of 12
core/util/packed/bulkOperation23.go:148: (byte11 & 15) too small for shift of 19
core/util/packed/bulkOperation23.go:148: byte12 too small for shift of 11
core/util/packed/bulkOperation23.go:156: (byte14 & 31) too small for shift of 18
core/util/packed/bulkOperation23.go:156: byte15 too small for shift of 10
core/util/packed/bulkOperation23.go:164: (byte17 & 63) too small for shift of 17
core/util/packed/bulkOperation23.go:164: byte18 too small for shift of 9
core/util/packed/bulkOperation23.go:170: (byte20 & 127) too small for shift of 16
core/util/packed/bulkOperation23.go:170: byte21 too small for shift of 8
core/util/packed/bulkOperation23.go:276: byte0 too small for shift of 15
core/util/packed/bulkOperation23.go:284: (byte2 & 1) too small for shift of 22
core/util/packed/bulkOperation23.go:284: byte3 too small for shift of 14
core/util/packed/bulkOperation23.go:292: (byte5 & 3) too small for shift of 21
core/util/packed/bulkOperation23.go:292: byte6 too small for shift of 13
core/util/packed/bulkOperation23.go:300: (byte8 & 7) too small for shift of 20
core/util/packed/bulkOperation23.go:300: byte9 too small for shift of 12
core/util/packed/bulkOperation23.go:308: (byte11 & 15) too small for shift of 19
core/util/packed/bulkOperation23.go:308: byte12 too small for shift of 11
core/util/packed/bulkOperation23.go:316: (byte14 & 31) too small for shift of 18
core/util/packed/bulkOperation23.go:316: byte15 too small for shift of 10
core/util/packed/bulkOperation23.go:324: (byte17 & 63) too small for shift of 17
core/util/packed/bulkOperation23.go:324: byte18 too small for shift of 9
core/util/packed/bulkOperation23.go:330: (byte20 & 127) too small for shift of 16
core/util/packed/bulkOperation23.go:330: byte21 too small for shift of 8
core/util/packed/bulkOperation24.go:40: byte0 too small for shift of 16
core/util/packed/bulkOperation24.go:40: byte1 too small for shift of 8
core/util/packed/bulkOperation24.go:70: byte0 too small for shift of 16
core/util/packed/bulkOperation24.go:70: byte1 too small for shift of 8
core/util/packed/bulkOperation9.go:128: (byte7 & 1) too small for shift of 8
core/util/packed/bulkOperation9.go:246: (byte7 & 1) too small for shift of 8
GET http://hamlet.mybluemix.net/api/search?q=asd 502 (Bad Gateway)t.ajax @ zepto.promise.min.js?
1.1.4:2t.getJSON @ zepto.promise.min.js?1.1.4:2(anonymous function) @ app.js:4i.proxy @ zepto.promise.min.js?1.1.4:2
Is this expected ?
Please don't alias packages in your example, like document -> docu. It makes it hard on new gophers and really if you didn't like the package name document, why did you name it that?
Hi, thanks for great work. i want to use this project to filter our document by a lot of tag. both number and order of the tag is control by user. so a reverse index is required.
it looks search by filter function is not provided? can i ask for such one?
hi,
first just amazing work..
I would like to use an old lucene index and not with java, so I was just trying to load my index but have faced many issue while reading it despite lucene index structure documentation.
my try https://github.com/darul75/moo/blob/master/src/solr.go a shame.. ;)
can you drive me a little I was looking at your code and codex package but I can not figure out how to change segmentsInfos.go to handle that kind of index version, mine is -7 (2.4 version)
When installing golucene with go get -u github.com/balzaczyy/golucene
I get the following compilation errors:
# github.com/balzaczyy/golucene/test_framework/index
go/src/github.com/balzaczyy/golucene/test_framework/index/random.go:31: undefined: SegmentCommitInfo
go/src/github.com/balzaczyy/golucene/test_framework/index/random.go:32: p.Writer undefined (type *MockRandomMergePolicy has no field or method Writer)
go/src/github.com/balzaczyy/golucene/test_framework/index/random.go:42: undefined: SegmentCommitInfo
go/src/github.com/balzaczyy/golucene/test_framework/index/random.go:56: undefined: SegmentCommitInfo
go/src/github.com/balzaczyy/golucene/test_framework/index/random.go:62: undefined: SegmentCommitInfo
go/src/github.com/balzaczyy/golucene/test_framework/index/random.go:91: undefined: SegmentCommitInfo
# github.com/balzaczyy/golucene/test_framework/search
go/src/github.com/balzaczyy/golucene/test_framework/search/similarity.go:85: undefined: hashstr
I understand that those might be in code that is not currently used/needed, but for someone trying to use golucence, they give the impression that the code is currently not working.
Ideally, running go build ./...
in top directory should not produce any errors
It'd be great to not have code snippets in the readme but a full on main file. This makes it easier for people starting out in the language.
[TODO] ShallowSizeOfInstance(fst.Arc)
[TODO] ShallowSizeOfInstance(*fst.NoOutputs)
Found postings format: Lucene41
Found codec: Lucene42
Found codec: Lucene49
Found codec: Lucene410
2014/12/20 15:34:19 Setting default infoStream...
panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xb code=0x1 addr=0x0 pc=0x4df397]
goroutine 1 [running]:
github.com/balzaczyy/golucene/core/index.(*IndexWriter).AddDocument(0x0, 0xc20800b1f0, 0x1, 0x1, 0x0, 0x0)
/home/mike/workspace-classyfier/src/github.com/balzaczyy/golucene/core/index/writer.go:562 +0x87
main.main()
/home/mike/workspace-classyfier/src/github.com/gaffo/classyfier/main.go:182 +0x441
goroutine 5 [runnable]:
github.com/balzaczyy/golucene/core/index.(_ConcurrentMergeScheduler).worker(0xc2080464b0, 0x0)
/home/mike/workspace-classyfier/src/github.com/balzaczyy/golucene/core/index/concurrentMergeScheduler.go:90
created by github.com/balzaczyy/golucene/core/index.(_ConcurrentMergeScheduler).SetMaxMergesAndRoutines
/home/mike/workspace-classyfier/src/github.com/balzaczyy/golucene/core/index/concurrentMergeScheduler.go:148 +0x2b9
goroutine 6 [runnable]:
github.com/balzaczyy/golucene/core/index.(*ClosingControl).daemon(0xc20801e900)
/home/mike/workspace-classyfier/src/github.com/balzaczyy/golucene/core/index/writer.go:101
created by github.com/balzaczyy/golucene/core/index.newClosingControl
/home/mike/workspace-classyfier/src/github.com/balzaczyy/golucene/core/index/writer.go:97 +0xf1
exit status 2
Master, on compilation, produces this error:
src/github.com/balzaczyy/golucene/analysis/util/stopword.go:25: ans.setVersion undefined (type *StopwordAnalyzerBase has no field or method setVersion)
And things like range queries
thanks for making this! I was about to start writing my own port to go cuz I just can't take java anymore. Any info on a golang elastic to query this?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.