当前位置: 首页>>代码示例>>Golang>>正文


Golang structs.Index类代码示例

本文整理汇总了Golang中structs.Index的典型用法代码示例。如果您正苦于以下问题:Golang Index类的具体用法?Golang Index怎么用?Golang Index使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了Index类的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。

示例1: listAll

func listAll(index *structs.Index) {
	fmt.Println("Contents of the index:")
	for doc := range index.IteratorDocs() {
		fmt.Printf("%v\n", doc)
		for keyword := range index.IteratorKeywordsByDoc(doc) {
			fmt.Printf("\t%v\n", keyword)
		}
	}
}
开发者ID:just-another-one-timmy,项目名称:injackted,代码行数:9,代码来源:sampleclient.go

示例2: listAllDocs

func listAllDocs(index *structs.Index) {
	fmt.Println("There are next docs in the index:")
	count := 0
	for doc := range index.IteratorDocs() {
		count++
		fmt.Printf("\t%v\n", doc)
	}
	fmt.Printf("%v in total\n", count)
}
开发者ID:just-another-one-timmy,项目名称:injackted,代码行数:9,代码来源:sampleclient.go

示例3: listAllKeywords

func listAllKeywords(index *structs.Index) {
	fmt.Println("There are next keywords in the index:")
	count := 0
	for keyword := range index.IteratorKeywords() {
		count++
		fmt.Printf("\t%v\n", keyword)
	}
	fmt.Printf("%v in total\n", count)
}
开发者ID:just-another-one-timmy,项目名称:injackted,代码行数:9,代码来源:sampleclient.go

示例4: listKeywords

func listKeywords(index *structs.Index, doc string) {
	fmt.Printf("Keywords contained in %q:\n", doc)
	count := 0
	for keyword := range index.IteratorKeywordsByDoc(doc) {
		count++
		fmt.Printf("\t%v\n", keyword)
	}
	fmt.Printf("%v in total\n", count)
}
开发者ID:just-another-one-timmy,项目名称:injackted,代码行数:9,代码来源:sampleclient.go

示例5: listDocs

func listDocs(index *structs.Index, keyword string) {
	fmt.Printf("Documents which contain keyword %q:\n", keyword)
	count := 0
	for doc := range index.IteratorDocsByKeyword(keyword) {
		count++
		fmt.Printf("\t%v\n", doc)
	}
	fmt.Printf("%v in total\n", count)
}
开发者ID:just-another-one-timmy,项目名称:injackted,代码行数:9,代码来源:sampleclient.go

示例6: queryIndex

func queryIndex(index *structs.Index, rexpstr string) {
	r, err := regexp.Compile(rexpstr)
	if err != nil {
		fmt.Printf("%v\n", err.Error())
		return
	}
	matchedDocsCount, matchedKeywordsCount := 0, 0
	fmt.Println("Docs matched by regexp:")
	for doc := range index.IteratorDocs() {
		docStr := doc.(string)
		if r.MatchString(docStr) {
			matchedDocsCount++
			fmt.Println(docStr)
		}
	}
	fmt.Printf("%v total.\n", matchedDocsCount)
	fmt.Println("Keywords matched by regexp:")
	for keyword := range index.IteratorKeywords() {
		keywordStr := keyword.(string)
		if r.MatchString(keywordStr) {
			fmt.Println(keyword)
			matchedKeywordsCount++
			inDocs := make([]string, 0)
			for doc := range index.IteratorDocsByKeyword(keywordStr) {
				inDocs = append(inDocs, doc.(string))
			}
			fmt.Printf("\tFound in the next %v documents:\n", len(inDocs))
			for _, doc := range inDocs {
				fmt.Printf("\t%v\n", doc)
			}
		}
	}
	fmt.Printf("%v total.\n", matchedKeywordsCount)
}
开发者ID:just-another-one-timmy,项目名称:injackted,代码行数:34,代码来源:sampleclient.go

示例7: crawl

func crawl(index *structs.Index, fileNames []string) {
	// channel to recieve doc-keyword pairs.
	c := make(chan DocKeywordPair)
	// channel to count number of go-routines.
	w := make(chan string)

	semaphore := make(chan interface{}, MAX_FILES_OPEN)

	goroutinesCount := len(fileNames)
	for _, fileName := range fileNames {
		go processFile(fileName, c, w, semaphore)
	}
	for goroutinesCount > 0 {
		select {
		case docKeywordPair := <-c:
			index.ConnectKeywordDoc(docKeywordPair.Keyword,
				docKeywordPair.Doc)
		case name := <-w:
			goroutinesCount--
			percentage := (1.0 - float64(goroutinesCount)/float64(len(fileNames))) * 100
			fmt.Printf("Processed file %v\t%6.2f%%\n", name, percentage)
		}
	}
}
开发者ID:just-another-one-timmy,项目名称:injackted,代码行数:24,代码来源:crawler.go

示例8: connect

func connect(index *structs.Index, keyword string, doc string) {
	index.ConnectKeywordDoc(keyword, doc)
	fmt.Printf("%q and %q were connected in the index\n", keyword, doc)
}
开发者ID:just-another-one-timmy,项目名称:injackted,代码行数:4,代码来源:sampleclient.go


注:本文中的structs.Index类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。