{
  "cli/analysis/index.html": {
    "href": "cli/analysis/index.html",
    "title": "analysis | Apache Lucene.NET 4.8.0-beta00012 Documentation",
    "keywords": "analysis Description Utilities to manage specialized analyzers. Commands kuromoji-build-dictionary stempel-compile-stems stempel-patch-stems"
  },
  "cli/analysis/kuromoji-build-dictionary.html": {
    "href": "cli/analysis/kuromoji-build-dictionary.html",
    "title": "kuromoji-build-dictionary | Apache Lucene.NET 4.8.0-beta00012 Documentation",
    "keywords": "kuromoji-build-dictionary Name analysis-kuromoji-build-dictionary - Generates a set of custom dictionary files for the Lucene.Net.Analysis.Kuromoji library. Synopsis lucene analysis kuromoji-build-dictionary <FORMAT> <INPUT_DIRECTORY> <OUTPUT_DIRECTORY> [-e|--encoding] [-n|--normalize] [?|-h|--help] Description Generates the following set of binary files: CharacterDefinition.dat ConnectionCosts.dat TokenInfoDictionary$buffer.dat TokenInfoDictionary$fst.dat TokenInfoDictionary$posDict.dat TokenInfoDictionary$targetMap.dat UnknownDictionary$buffer.dat UnknownDictionary$posDict.dat UnknownDictionary$targetMap.dat If these files are placed into a subdirectory of your application named kuromoji-data , they will be used automatically by Lucene.Net.Analysis.Kuromoji features such as the JapaneseAnalyzer or JapaneseTokenizer. To use an alternate directory location, put the path in an environment variable named kuromoji.data.dir . The files must be placed in a subdirectory of this location named kuromoji-data . See this blog post for information about the dictionary format. A sample is available at https://sourceforge.net/projects/mecab/files/mecab-ipadic/2.7.0-20070801/ . The Kuromoji project documentation may also be helpful. Arguments FORMAT The dictionary format. Valid values are IPADIC and UNIDIC. If an invalid value is passed, IPADIC is assumed. INPUT_DIRECTORY The directory where the dictionary input files are located. OUTPUT_DIRECTORY The directory to put the dictionary output. Options ?|-h|--help Prints out a short help for the command. -e|--encoding <ENCODING> The file encoding used by the input files. If not supplied, the default value is EUC-JP . -n|--normalize Normalize the entries using normalization form KC. Example lucene analysis kuromoji-build-dictionary IPADIC X:\\kuromoji-data X:\\kuromoji-dictionary --normalize"
  },
  "cli/analysis/stempel-compile-stems.html": {
    "href": "cli/analysis/stempel-compile-stems.html",
    "title": "stempel-compile-stems | Apache Lucene.NET 4.8.0-beta00012 Documentation",
    "keywords": "stempel-compile-stems Name analysis-stempel-compile-stems - Compiles a stemmer table for the Egothor stemmer in the Lucene.Net.Analysis.Stempel project. Synopsis lucene analysis stempel-compile-stems <STEMMING_ALGORITHM> <STEMMER_TABLE_FILE> [-e|--encoding] [?|-h|--help] Description See the Egothor project documentation for more information. Arguments STEMMING_ALGORITHM The name of the desired stemming algorithm to use. Possible values are Multi (which changes the stemmer to use the MultiTrie2 rather than a Trie class to store its data) or 0 which instructs the stemmer to store the original data. Any other supplied value will use the default algorithm. See the Egothor project documentation for more information. STEMMER_TABLE_FILE The path to a file containing a stemmer table. Multiple values can be supplied separated by a space. Options ?|-h|--help Prints out a short help for the command. -e|--encoding <ENCODING> The file encoding used by the stemmer files. If not supplied, the default value is UTF-8 . Note this value can alternatively be supplied by setting the environment variable egothor.stemmer.charset . Example lucene analysis stempel-compile-stems test X:\\stemmer-data\\table1.txt X:\\stemmer-data\\table2.txt"
  },
  "cli/analysis/stempel-patch-stems.html": {
    "href": "cli/analysis/stempel-patch-stems.html",
    "title": "stempel-patch-stems | Apache Lucene.NET 4.8.0-beta00012 Documentation",
    "keywords": "stempel-patch-stems Name analysis-stempel-patch-stems - Generates patch commands from an already prepared stemmer table for the Egothor stemmer in the Lucene.Net.Analysis.Stempel project. Synopsis lucene analysis stempel-patch-stems <STEMMER_TABLE_FILE> [-e|--encoding] [?|-h|--help] Description See the Egothor project documentation for more information. Arguments STEMMER_TABLE_FILE The path to a file containing a stemmer table. Multiple values can be supplied separated by a space. Options ?|-h|--help Prints out a short help for the command. -e|--encoding <ENCODING> The file encoding used by the stemmer files. If not supplied, the default value is UTF-8 . Note this value can alternatively be supplied by setting the environment variable egothor.stemmer.charset . Example lucene analysis stempel-patch-stems X:\\stemmer-data\\table1.txt X:\\stemmer-data\\table2.txt --encoding UTF-16"
  },
  "cli/benchmark/extract-reuters.html": {
    "href": "cli/benchmark/extract-reuters.html",
    "title": "extract-reuters | Apache Lucene.NET 4.8.0-beta00012 Documentation",
    "keywords": "extract-reuters Name benchmark-extract-reuters - Splits Reuters SGML documents into simple text files containing: Title, Date, Dateline, Body. Synopsis lucene benchmark extract-reuters <INPUT_DIRECTORY> <OUTPUT_DIRECTORY> [?|-h|--help] Arguments INPUT_DIRECTORY Path to Reuters SGML files. OUTPUT_DIRECTORY Path to a directory where the output files will be written. Options ?|-h|--help Prints out a short help for the command. Example Extracts the reuters SGML files in the z:\\input directory and places the content in the z:\\output directory. lucene benchmark extract-reuters z:\\input z:\\output"
  },
  "cli/benchmark/extract-wikipedia.html": {
    "href": "cli/benchmark/extract-wikipedia.html",
    "title": "extract-wikipedia | Apache Lucene.NET 4.8.0-beta00012 Documentation",
    "keywords": "extract-wikipedia Name benchmark-extract-wikipedia - Extracts a downloaded Wikipedia dump into separate files for indexing. Synopsis lucene benchmark extract-wikipedia <INPUT_WIKIPEDIA_FILE> <OUTPUT_DIRECTORY> [-d|--discard-image-only-docs] [?|-h|--help] Arguments INPUT_WIKIPEDIA_FILE Input path to a Wikipedia XML file. OUTPUT_DIRECTORY Path to a directory where the output files will be written. Options ?|-h|--help Prints out a short help for the command. -d|--discard-image-only-docs Tells the extractor to skip WIKI docs that contain only images. Example Extracts the c:\\wiki.xml file into the c:\\out directory, skipping any docs that only contain images. lucene benchmark extract-wikipedia c:\\wiki.xml c:\\out -d"
  },
  "cli/benchmark/find-quality-queries.html": {
    "href": "cli/benchmark/find-quality-queries.html",
    "title": "find-quality-queries | Apache Lucene.NET 4.8.0-beta00012 Documentation",
    "keywords": "find-quality-queries Name benchmark-find-quality-queries - Suggests quality queries based on index contents. Used for making quality test benchmarks. Synopsis lucene benchmark find-quality-queries <INPUT_DIRECTORY> [?|-h|--help] Arguments INDEX_DIRECTORY Path to the index. Options ?|-h|--help Prints out a short help for the command. Example Finds quality queries on the c:\\lucene-index index directory. lucene benchmark find-quality-queries c:\\lucene-index"
  },
  "cli/benchmark/index.html": {
    "href": "cli/benchmark/index.html",
    "title": "benchmark | Apache Lucene.NET 4.8.0-beta00012 Documentation",
    "keywords": "benchmark Description Utilities for benchmarking Lucene.Net. Commands extract-reuters extract-wikipedia find-quality-queries run run-trec-eval sample"
  },
  "cli/benchmark/run.html": {
    "href": "cli/benchmark/run.html",
    "title": "run | Apache Lucene.NET 4.8.0-beta00012 Documentation",
    "keywords": "run Name benchmark-run - Runs a benchmark based on an algorithm file. Synopsis lucene benchmark run <ALGORITHM_FILE> <OUTPUT_DIRECTORY> [?|-h|--help] Arguments ALGORITHM_FILE An algorithm file specifying the parameters of the benchmark to run. OUTPUT_DIRECTORY Path to a directory where the output files will be written. Options ?|-h|--help Prints out a short help for the command. Example Runs a benchmark on the c:\\check.alg algorithm file. lucene benchmark run c:\\check.alg"
  },
  "cli/benchmark/run-trec-eval.html": {
    "href": "cli/benchmark/run-trec-eval.html",
    "title": "run-trec-eval | Apache Lucene.NET 4.8.0-beta00012 Documentation",
    "keywords": "run-trec-eval Name benchmark-run-trec-eval - Runs a TREC evaluation. Synopsis lucene benchmark run-trec-eval <INPUT_TOPICS_FILE> <INPUT_QUERY_RELEVANCE_FILE> <OUTPUT_SUBMISSION_FILE> <INDEX_DIRECTORY> [-t|--query-on-title] [-d|--query-on-description] [-n|--query-on-narrative] [?|-h|--help] Arguments INPUT_TOPICS_FILE Input file containing queries. INPUT_QUERY_RELEVANCE_FILE Input file conataining relevance judgements. OUTPUT_SUBMISSION_FILE Output submission file for TREC evaluation. INDEX_DIRECTORY The index directory. Options ?|-h|--help Prints out a short help for the command. -t|--query-on-title Use title field in query. This flag will automatically be on if no other field is specified. -d|--query-on-description Use description field in query. -n|--query-on-narrative Use narrative field in query. Example Runs a TREC evaluation on the c:\\topics queries file and the c:\\queries relevance judgements on the c:\\lucene-index index using the description and narrative fields and places the output in c:\\output.txt . lucene benchmark run-trec-eval c:\\topics.txt c:\\queries.txt c:\\submissions.txt c:\\output.txt c:\\lucene-index -d -n"
  },
  "cli/benchmark/sample.html": {
    "href": "cli/benchmark/sample.html",
    "title": "sample | Apache Lucene.NET 4.8.0-beta00012 Documentation",
    "keywords": "sample Name benchmark-sample - Sample of a performance test written programatically instead of using an algorithm file. Synopsis lucene benchmark sample [-src|--view-source-code] [-out|--output-source-code] [?|-h|--help] Options ?|-h|--help Prints out a short help for the command. -src|--view-source-code Prints the source code to the console. Use SPACE or n to move to the next page of text, ENTER to scroll to the next line of text, q or x to quit. -out|--output-source-code <DIRECTORY> Outputs the source code to the specified directory. Example Runs the sample. lucene benchmark sample"
  },
  "cli/demo/associations-facets.html": {
    "href": "cli/demo/associations-facets.html",
    "title": "associations-facets | Apache Lucene.NET 4.8.0-beta00012 Documentation",
    "keywords": "associations-facets Name demo-associations-facets - Shows example usage of category associations. Synopsis lucene demo associations-facets [-src|--view-source-code] [-out|--output-source-code] [?|-h|--help] Options ?|-h|--help Prints out a short help for the command. -src|--view-source-code Prints the source code to the console. Use SPACE or n to move to the next page of text, ENTER to scroll to the next line of text, q or x to quit. -out|--output-source-code <DIRECTORY> Outputs the source code to the specified directory. Example lucene demo associations-facets"
  },
  "cli/demo/distance-facets.html": {
    "href": "cli/demo/distance-facets.html",
    "title": "distance-facets | Apache Lucene.NET 4.8.0-beta00012 Documentation",
    "keywords": "distance-facets Name demo-distance-facets - Shows simple usage of dynamic range faceting, using the expressions module to calculate distance. Synopsis lucene demo distance-facets [-src|--view-source-code] [-out|--output-source-code] [?|-h|--help] Options ?|-h|--help Prints out a short help for the command. -src|--view-source-code Prints the source code to the console. Use SPACE or n to move to the next page of text, ENTER to scroll to the next line of text, q or x to quit. -out|--output-source-code <DIRECTORY> Outputs the source code to the specified directory. Example lucene demo distance-facets"
  },
  "cli/demo/expression-aggregation-facets.html": {
    "href": "cli/demo/expression-aggregation-facets.html",
    "title": "expression-aggregation-facets | Apache Lucene.NET 4.8.0-beta00012 Documentation",
    "keywords": "expression-aggregation-facets Name demo-expression-aggregation-facets - Shows facets aggregation by an expression. Synopsis lucene demo expression-aggregation-facets [-src|--view-source-code] [-out|--output-source-code] [?|-h|--help] Options ?|-h|--help Prints out a short help for the command. -src|--view-source-code Prints the source code to the console. Use SPACE or n to move to the next page of text, ENTER to scroll to the next line of text, q or x to quit. -out|--output-source-code <DIRECTORY> Outputs the source code to the specified directory. Example lucene demo expression-aggregation-facets"
  },
  "cli/demo/index.html": {
    "href": "cli/demo/index.html",
    "title": "demo | Apache Lucene.NET 4.8.0-beta00012 Documentation",
    "keywords": "demo Description Demos for various Lucene.Net functionality including C# code samples. Commands associations-facets distance-facets expression-aggregation-facets index-files multi-category-lists-facets range-facets search-files simple-facets simple-sorted-set-facets"
  },
  "cli/demo/index-files.html": {
    "href": "cli/demo/index-files.html",
    "title": "index-files | Apache Lucene.NET 4.8.0-beta00012 Documentation",
    "keywords": "index-files Name demo-index-files - Index all files under a directory. Synopsis lucene demo index-files \\<INDEX_DIRECTORY> \\<SOURCE_DIRECTORY> [-u|--update] [?|-h|--help] lucene demo index-files [-src|--view-source-code] [-out|--output-source-code] Description This demo can be used to learn how to build a Lucene.Net index. After the index has been built, you can run the search-files demo to run queries against it. Arguments INDEX_DIRECTORY The directory of the index. SOURCE_DIRECTORY The source directory containing the files to index. This directory will be analyzed recursively. Options ?|-h|--help Prints out a short help for the command. -u|--update Adds new documents to an existing index. If not supplied, any existing index in the INDEX_DIRECTORY will be overwritten. -src|--view-source-code Prints the source code to the console. Use SPACE or n to move to the next page of text, ENTER to scroll to the next line of text, q or x to quit. -out|--output-source-code <DIRECTORY> Outputs the source code to the specified directory. Example Indexes the contents of C:\\Users\\BGates\\Documents\\ and places the Lucene.Net index in X:\\test-index\\ . lucene demo index-files X:\\test-index C:\\Users\\BGates\\Documents"
  },
  "cli/demo/multi-category-lists-facets.html": {
    "href": "cli/demo/multi-category-lists-facets.html",
    "title": "multi-category-lists-facets | Apache Lucene.NET 4.8.0-beta00012 Documentation",
    "keywords": "multi-category-lists-facets Name demo-multi-category-lists-facets - Demonstrates indexing categories into different indexed fields. Synopsis lucene demo multi-category-lists-facets [-src|--view-source-code] [-out|--output-source-code] [?|-h|--help] Options ?|-h|--help Prints out a short help for the command. -src|--view-source-code Prints the source code to the console. Use SPACE or n to move to the next page of text, ENTER to scroll to the next line of text, q or x to quit. -out|--output-source-code <DIRECTORY> Outputs the source code to the specified directory. Example lucene demo multi-category-lists-facets"
  },
  "cli/demo/range-facets.html": {
    "href": "cli/demo/range-facets.html",
    "title": "range-facets | Apache Lucene.NET 4.8.0-beta00012 Documentation",
    "keywords": "range-facets Name demo-range-facets - Shows simple usage of dynamic range faceting. Synopsis lucene demo range-facets [-src|--view-source-code] [-out|--output-source-code] [?|-h|--help] Options ?|-h|--help Prints out a short help for the command. -src|--view-source-code Prints the source code to the console. Use SPACE or n to move to the next page of text, ENTER to scroll to the next line of text, q or x to quit. -out|--output-source-code <DIRECTORY> Outputs the source code to the specified directory. Example lucene demo range-facets"
  },
  "cli/demo/search-files.html": {
    "href": "cli/demo/search-files.html",
    "title": "search-files | Apache Lucene.NET 4.8.0-beta00012 Documentation",
    "keywords": "search-files Name demo-search-files - Simple command-line based search demo. Synopsis lucene demo search-files \\<INDEX_DIRECTORY> [-f|--field] [-r|--repeat] [-qf|--queries-file] [-q|--query] [--raw] [-p|--page-size] [?|-h|--help] lucene demo search-files [-src|--view-source-code] [-out|--output-source-code] Description Run the index-files demo first to generate an index to search. NOTE: To run queries interactively in the console, omit both the --queries-file and the --query arguments. Arguments INDEX_DIRECTORY The directory of the index that has previously been created using the index-files demo . Options ?|-h|--help Prints out a short help for the command. -f|--field <FIELD> The index field to use in the search. If not supplied, defaults to contents . -r|--repeat <NUMBER> Repeat the search and time as a benchmark. -qf|--queries-file <PATH> A file containing the queries to perform. -q|--query <QUERY> A query to perform. --raw Output raw format. -p|--page-size <NUMBER> Hits per page to display. -src|--view-source-code Prints the source code to the console. Use SPACE or n to move to the next page of text, ENTER to scroll to the next line of text, q or x to quit. -out|--output-source-code <DIRECTORY> Outputs the source code to the specified directory. Examples Search the index located in the X:\\test-index directory interactively, showing 15 results per page in raw format: lucene demo search-files X:\\test-index -p 15 --raw Run the query \"foobar\" against the \"path\" field in the index located in the X:\\test-index directory: lucene demo search-files X:\\test-index --field path --query foobar"
  },
  "cli/demo/simple-facets.html": {
    "href": "cli/demo/simple-facets.html",
    "title": "simple-facets | Apache Lucene.NET 4.8.0-beta00012 Documentation",
    "keywords": "simple-facets Name demo-simple-facets - Shows simple usage of faceted indexing and searching. Synopsis lucene demo simple-facets [-src|--view-source-code] [-out|--output-source-code] [?|-h|--help] Options ?|-h|--help Prints out a short help for the command. -src|--view-source-code Prints the source code to the console. Use SPACE or n to move to the next page of text, ENTER to scroll to the next line of text, q or x to quit. -out|--output-source-code <DIRECTORY> Outputs the source code to the specified directory. Example lucene demo simple-facets"
  },
  "cli/demo/simple-sorted-set-facets.html": {
    "href": "cli/demo/simple-sorted-set-facets.html",
    "title": "simple-sorted-set-facets | Apache Lucene.NET 4.8.0-beta00012 Documentation",
    "keywords": "simple-sorted-set-facets Name demo-simple-sorted-set-facets - Shows simple usage of faceted indexing and search using SortedSetDocValuesFacetField and SortedSetDocValuesFacetCounts. Synopsis lucene demo simple-sorted-set-facets [-src|--view-source-code] [-out|--output-source-code] [?|-h|--help] Options ?|-h|--help Prints out a short help for the command. -src|--view-source-code Prints the source code to the console. Use SPACE or n to move to the next page of text, ENTER to scroll to the next line of text, q or x to quit. -out|--output-source-code <DIRECTORY> Outputs the source code to the specified directory. Example lucene demo simple-sorted-set-facets"
  },
  "cli/index.html": {
    "href": "cli/index.html",
    "title": "Lucene.Net command line interface (CLI) tools | Apache Lucene.NET 4.8.0-beta00012 Documentation",
    "keywords": "Lucene.Net command line interface (CLI) tools The Lucene.Net command line interface (CLI) is a new cross-platform toolchain with utilities for maintaining Lucene.Net and demos for learning basic Lucene.Net functionality. Prerequisites .NET Core 3.1.0 Runtime Installation Perform a one-time install of the lucene-cli tool using the following dotnet CLI command: dotnet tool install lucene-cli -g --version [EnvVar:LuceneNetVersion] You may then use the lucene-cli tool to analyze and update Lucene.Net indexes and use its demos. CLI Commands The following commands are installed: analysis demo index lock Command structure CLI command structure consists of the driver (\"lucene\"), the command, and possibly command arguments and options. You see this pattern in most CLI operations, such as checking a Lucene.Net index for problematic segments and fixing (removing) them: lucene index check C:\\my-index --verbose lucene index fix C:\\my-index"
  },
  "cli/index/check.html": {
    "href": "cli/index/check.html",
    "title": "check | Apache Lucene.NET 4.8.0-beta00012 Documentation",
    "keywords": "check Name index-check - Checks an index for problematic segments. Synopsis lucene index check [<INDEX_DIRECTORY>] [-v|--verbose] [-c|--cross-check-term-vectors] [-dir|--directory-type] [-s|--segment] [?|-h|--help] Description Basic tool to check the health of an index. As this tool checks every byte in the index, on a large index it can take quite a long time to run. Arguments INDEX_DIRECTORY The path to the directory of the index to check. If omitted, it defaults to the current working directory. Options ?|-h|--help Prints out a short help for the command. -v|--verbose Enable verbose output. -c|--cross-check-term-vectors Cross-check term vectors. -dir|--directory-type <DIRECTORY_TYPE> The FSDirectory implementation to use. If ommitted, it defaults to the optimal FSDirectory for your OS platform. -s|--segment <SEGMENT> Only check the specified segment(s). This can be specified multiple times, to check more than one segment, eg --segment _2 --segment _a. Examples Check the index located at X:\\lucenenet-index\\ verbosely, scanning only the segments named _1j_Lucene41_0 and _2u_Lucene41_0 for problems: lucene index check X:\\lucenenet-index -v -s _1j_Lucene41_0 -s _2u_Lucene41_0 Check the index located at C:\\taxonomy\\ using the MMapDirectory memory-mapped directory implementation: lucene index check C:\\taxonomy --directory-type MMapDirectory"
  },
  "cli/index/copy-segments.html": {
    "href": "cli/index/copy-segments.html",
    "title": "copy-segments | Apache Lucene.NET 4.8.0-beta00012 Documentation",
    "keywords": "copy-segments Name index-copy-segments - Copies segments from one index to another index. Synopsis lucene index copy-segments <INPUT_DIRECTORY> <OUTPUT_DIRECTORY> <SEGMENT>[ <SEGMENT_2>...] [?|-h|--help] Description This tool does file-level copying of segments files. This means it's unable to split apart a single segment into multiple segments. For example if your index is a single segment, this tool won't help. Also, it does basic file-level copying (using simple FileStream) so it will not work with non FSDirectory Directory implementations. Arguments INPUT_DIRECTORY The directory of the index to copy. OUTPUT_DIRECTORY The directory of the destination index. SEGMENT, SEGMENT_2 The segments to copy, separated by a space. Options ?|-h|--help Prints out a short help for the command. Example Copy the _71_Lucene41_0 segment from the index located at X:\\lucene-index to the index located at X:\\output : lucene index copy-segments X:\\lucene-index X:\\output _71_Lucene41_0"
  },
  "cli/index/delete-segments.html": {
    "href": "cli/index/delete-segments.html",
    "title": "delete-segments | Apache Lucene.NET 4.8.0-beta00012 Documentation",
    "keywords": "delete-segments Name index-delete-segments - Deletes segments from an index. Synopsis lucene index delete-segments <INDEX_DIRECTORY> <SEGMENT>[ <SEGMENT_2>...] [?|-h|--help] Description You can easily accidentally remove segments from your index, so be careful! Always make a backup of your index first. Arguments INDEX_DIRECTORY The directory of the index. SEGMENT The segments to delete, separated by a space. Options ?|-h|--help Prints out a short help for the command. Example Delete the segments named _8c and _83 from the index located at X:\\category-data\\ : lucene index delete-segments X:\\category-data _8c _83"
  },
  "cli/index/extract-cfs.html": {
    "href": "cli/index/extract-cfs.html",
    "title": "extract-cfs | Apache Lucene.NET 4.8.0-beta00012 Documentation",
    "keywords": "extract-cfs Name index-extract-cfs - Extracts sub-files from a .cfs compound file. Synopsis lucene index extract-cfs <CFS_FILE_NAME> [-dir|--directory-type] [?|-h|--help] Description Extracts .cfs compound files (that were created using the CompoundFileDirectory from Lucene.Net.Misc) to the current working directory. In order to make the extracted version of the index work, you have to copy the segments file from the compound index into the directory where the extracted files are stored. Arguments CFS_FILE_NAME The path to a .cfs compound file containing words to parse. Options ?|-h|--help Prints out a short help for the command. -dir|--directory-type <DIRECTORY_TYPE> The FSDirectory implementation to use. If ommitted, it defaults to the optimal FSDirectory for your OS platform. Examples Extract the files from the compound file at X:\\lucene-index\\_81.cfs to the current working directory: lucene index extract-cfs X:\\lucene-index_81.cfs Extract the files from the compound file at X:\\lucene-index\\_64.cfs to the current working directory using the SimpleFSDirectory implementation: lucene index extract-cfs X:\\lucene-index_64.cfs --directory-type SimpleFSDirectory"
  },
  "cli/index/fix.html": {
    "href": "cli/index/fix.html",
    "title": "fix | Apache Lucene.NET 4.8.0-beta00012 Documentation",
    "keywords": "fix Name index-fix - Fixes an index by removing problematic segments. Synopsis lucene index fix [<INDEX_DIRECTORY>] [-v|--verbose] [-c|--cross-check-term-vectors] [-dir|--directory-type] [--dry-run] [?|-h|--help] Description Basic tool to write a new segments file that removes reference to problematic segments. As this tool checks every byte in the index, on a large index it can take quite a long time to run. WARNING: This command should only be used on an emergency basis as it will cause documents (perhaps many) to be permanently removed from the index. Always make a backup copy of your index before running this! Do not run this tool on an index that is actively being written to. You have been warned! Arguments INDEX_DIRECTORY The directory of the index. If omitted, it defaults to the current working directory. Options ?|-h|--help Prints out a short help for the command. -v|--verbose Enables verbose output. -c|--cross-check-term-vectors Cross check term vectors. -dir|--directory-type <DIRECTORY_TYPE> The FSDirectory implementation to use. If omitted, it defaults to the optimal FSDirectory for your OS platform. --dry-run Doesn't change the index, but reports any actions that would be taken if this option were not supplied. Examples Check what a fix operation would do if run on the index located at X:\\product-index\\ , using verbose output: lucene index fix X:\\product-index --verbose --dry-run Fix the index located at X:\\product-index and cross check term vectors: lucene index fix X:\\product-index -c"
  },
  "cli/index/index.html": {
    "href": "cli/index/index.html",
    "title": "index | Apache Lucene.NET 4.8.0-beta00012 Documentation",
    "keywords": "index Description Utilities to manage specialized analyzers. WARNING: Many of these operations change an index in ways that cannot be reversed. Always make a backup of your index before running these commands. Commands check copy-segments delete-segments extract-cfs fix list-cfs list-high-freq-terms list-segments list-taxonomy-stats list-term-info merge split upgrade"
  },
  "cli/index/list-cfs.html": {
    "href": "cli/index/list-cfs.html",
    "title": "list-cfs | Apache Lucene.NET 4.8.0-beta00012 Documentation",
    "keywords": "list-cfs Name index-list-cfs - Lists sub-files from a .cfs compound file. Synopsis lucene index list-cfs <CFS_FILE_NAME> [-dir|--directory-type] [?|-h|--help] Description Prints the filename and size of each file within a given .cfs compound file. The .cfs compound file format is created using the CompoundFileDirectory from Lucene.Net.Misc. Arguments CFS_FILE_NAME The .cfs compound file containing words to parse. Options ?|-h|--help Prints out a short help for the command. -dir|--directory-type <DIRECTORY_TYPE> The FSDirectory implementation to use. If omitted, defaults to the optimal FSDirectory for your OS platform. Example Lists the files within the X:\\categories\\_53.cfs compound file using the NIOFSDirectory directory implementation: lucene index list-cfs X:\\categories_53.cfs -dir NIOFSDirectory"
  },
  "cli/index/list-high-freq-terms.html": {
    "href": "cli/index/list-high-freq-terms.html",
    "title": "list-high-freq-terms | Apache Lucene.NET 4.8.0-beta00012 Documentation",
    "keywords": "list-high-freq-terms Name index-list-high-freq-terms - Lists the top N most frequent terms by document frequency. Synopsis lucene index list-high-freq-terms [<INDEX_DIRECTORY>] [-t|--total-term-frequency] [-n|--number-of-terms] [-f|--field] [?|-h|--help] Description Extracts the top N most frequent terms (by document frequency) from an existing Lucene index and reports their document frequency. Arguments INDEX_DIRECTORY The directory of the index. If omitted, it defaults to the current working directory. Options ?|-h|--help Prints out a short help for the command. -t|--total-term-frequency Specifies that both the document frequency and term frequency are reported, ordered by descending total term frequency. -n|--number-of-terms <NUMBER> The number of terms to consider. If omitted, defaults to 100. -f|--field <FIELD> The field to consider. If omitted, considers all fields. Examples List the high frequency terms in the index located at F:\\product-index\\ on the description field, reporting both document frequency and term frequency: lucene index list-high-freq-terms F:\\product-index --total-term-frequency --field description List the high frequency terms in the index located at C:\\lucene-index\\ on the name field, tracking 30 terms: lucene index list-high-freq-terms C:\\lucene-index --f name -n 30"
  },
  "cli/index/list-segments.html": {
    "href": "cli/index/list-segments.html",
    "title": "list-segments | Apache Lucene.NET 4.8.0-beta00012 Documentation",
    "keywords": "list-segments Name index-list-segments - Lists segments in an index. Synopsis lucene index list-segments [<INDEX_DIRECTORY>] [?|-h|--help] Description After running this command to view segments, use copy-segments to copy segments from one index directory to another or delete-segments to remove segments from an index. Arguments INDEX_DIRECTORY The directory of the index. If omitted, it defaults to the current working directory. Options ?|-h|--help Prints out a short help for the command. Example List the segments in the index located at X:\\lucene-index\\ : lucene index list-segments X:\\lucene-index"
  },
  "cli/index/list-taxonomy-stats.html": {
    "href": "cli/index/list-taxonomy-stats.html",
    "title": "list-taxonomy-stats | Apache Lucene.NET 4.8.0-beta00012 Documentation",
    "keywords": "list-taxonomy-stats Name index-list-taxonomy-stats - Displays the taxonomy statistical information for a taxonomy index. Synopsis lucene index list-taxonomy-stats [<INDEX_DIRECTORY>] [-tree|--show-tree] [?|-h|--help] Description Prints how many ords are under each dimension. Arguments INDEX_DIRECTORY The directory of the index. If omitted, it defaults to the current working directory. NOTE: This directory must be a facet taxonomy directory for the command to succeed. Options ?|-h|--help Prints out a short help for the command. -tree|--show-tree Recursively lists all descendant nodes. Example List the taxonomy statistics from the index located at X:\\category-taxonomy-index\\ , viewing all descendant nodes: lucene index list-taxonomy-stats X:\\category-taxonomy-index -tree"
  },
  "cli/index/list-term-info.html": {
    "href": "cli/index/list-term-info.html",
    "title": "list-term-info | Apache Lucene.NET 4.8.0-beta00012 Documentation",
    "keywords": "list-term-info Name index-list-term-info - Gets document frequency and total number of occurrences of a term. Synopsis lucene index list-term-info <INDEX_DIRECTORY> <FIELD> <TERM> [?|-h|--help] Description Gets document frequency and total number of occurrences (sum of the term frequency for each document) of a term. Arguments INDEX_DIRECTORY The directory of the index. FIELD The field to consider. TERM The term to consider. Options ?|-h|--help Prints out a short help for the command. Example List the term information from the index located at C:\\project-index\\ : lucene index list-term-info C:\\project-index"
  },
  "cli/index/merge.html": {
    "href": "cli/index/merge.html",
    "title": "merge | Apache Lucene.NET 4.8.0-beta00012 Documentation",
    "keywords": "merge Name index-merge - Merges multiple indexes into a single index. Synopsis lucene index merge <OUTPUT_DIRECTORY> <INPUT_DIRECTORY> <INPUT_DIRECTORY_2>[ <INPUT_DIRECTORY_N>...] [?|-h|--help] Description Merges the the input index directories into a combined index at the output directory path. Arguments OUTPUT_DIRECTORY The output directory to merge the input indexes into. INPUT_DIRECTORY, INPUT_DIRECTORY_2, INPUT_DIRECTORY_N Two or more input index directories, separated by a space. Options ?|-h|--help Prints out a short help for the command. Example Merge the indexes C:\\product-index1 and C:\\product-index2 into an index located at X:\\merged-index : lucene index merge X:\\merged-index C:\\product-index1 C:\\product-index2"
  },
  "cli/index/split.html": {
    "href": "cli/index/split.html",
    "title": "split | Apache Lucene.NET 4.8.0-beta00012 Documentation",
    "keywords": "split Name index-split - Splits an index into multiple equal parts. Synopsis lucene index split <OUTPUT_DIRECTORY> <INPUT_DIRECTORY>[ <INPUT_DIRECTORY_2>...] [-n|--number-of-parts] [-s|--sequential] [?|-h|--help] Description Splits the input index into multiple equal parts. The method employed here uses IndexWriter.AddIndexes(IndexReader[]) where the input data comes from the input index with artificially applied deletes to the document ids that fall outside the selected partition. Deletes are only applied to a buffered list of deleted documents and don't affect the source index. This tool works also with read-only indexes. The disadvantage of this tool is that source index needs to be read as many times as there are parts to be created. The multiple passes may be slow. NOTE: This tool is unaware of documents added automatically via IndexWriter.AddDocuments(IEnumerable&lt;IEnumerable&lt;IIndexableField&gt;&gt;, Analyzer) or IndexWriter.UpdateDocuments(Term, IEnumerable&lt;IEnumerable&lt;IIndexableField&gt;&gt;, Analyzer) , which means it can easily break up such document groups. Arguments OUTPUT_DIRECTORY Path to output directory to contain partial indexes. INPUT_DIRECTORY, INPUT_DIRECTORY_2 The path of the source index, which can have deletions and can have multiple segments (or multiple readers). Multiple values can be supplied separated by a space. Options ?|-h|--help Prints out a short help for the command. -n|--number-of-parts <NUMBER> The number of parts (output indices) to produce. If omitted, defaults to 2. -s|--sequential Sequential doc-id range split (default is round-robin). Example Split the index located at X:\\old-index\\ sequentially, placing the resulting 2 indices into the X:\\new-index\\ directory: lucene index split X:\\new-index X:\\old-index --sequential Split the index located at T:\\in\\ into 4 parts and place them into the T:\\out\\ directory: lucene index split T:\\out T:\\in -n 4"
  },
  "cli/index/upgrade.html": {
    "href": "cli/index/upgrade.html",
    "title": "upgrade | Apache Lucene.NET 4.8.0-beta00012 Documentation",
    "keywords": "upgrade Name index-upgrade - Upgrades all segments of an index from previous Lucene.Net versions to the current segment file format. Synopsis lucene index upgrade [<INDEX_DIRECTORY>] [-d|--delete-prior-commits] [-v|--verbose] [-dir|--directory-type] [?|-h|--help] Description This tool keeps only the last commit in an index; for this reason, if the incoming index has more than one commit, the tool refuses to run by default. Specify --delete-prior-commits to override this, allowing the tool to delete all but the last commit. Specify an FSDirectory implementation through the --directory-type option to force its use. If not qualified by an AssemblyName, the Lucene.Net.dll assembly will be used. WARNING: This tool may reorder document IDs! Be sure to make a backup of your index before you use this. Also, ensure you are using the correct version of this utility to match your application's version of Lucene.Net. This operation cannot be reversed. Arguments INDEX_DIRECTORY The directory of the index. If omitted, it defaults to the current working directory. Options ?|-h|--help Prints out a short help for the command. -d|--delete-prior-commits Deletes prior commits. -v|--verbose Verbose output. -dir|--directory-type <DIRECTORY_TYPE> The FSDirectory implementation to use. Defaults to the optional FSDirectory for your OS platform. Examples Upgrade the index format of the index located at X:\\lucene-index\\ to the same version as this tool, using the SimpleFSDirectory implementation: lucene index upgrade X:\\lucene-index -dir SimpleFSDirectory Upgrade the index located at C:\\indexes\\category-index\\ verbosely, deleting all but the last commit: lucene index upgrade C:\\indexes\\category-index --verbose --delete-prior-commits"
  },
  "cli/lock/index.html": {
    "href": "cli/lock/index.html",
    "title": "lock | Apache Lucene.NET 4.8.0-beta00012 Documentation",
    "keywords": "lock Description Utilities for verifying concurrent locking integrity. Commands stress-test verify-server"
  },
  "cli/lock/stress-test.html": {
    "href": "cli/lock/stress-test.html",
    "title": "stress-test | Apache Lucene.NET 4.8.0-beta00012 Documentation",
    "keywords": "stress-test Name lock-stress-test - Simple tool that forever acquires and releases a lock using a specific LockFactory . Synopsis lucene lock stress-test <ID> <VERIFIER_HOST> <VERIFIER_PORT> <LOCK_FACTORY_TYPE> <LOCK_DIRECTORY> <SLEEP_TIME_MS> <TRIES> [?|-h|--help] Description You should run multiple instances of this process, each with its own unique ID, and each pointing to the same lock directory, to verify that locking is working correctly. Make sure you are first running verify-server . Arguments ID An integer from 0 - 255 (should be unique for test process). VERIFIER_HOST Hostname or IP address that verify-server is listening on. VERIFIER_PORT Port that verify-server is listening on. LOCK_FACTORY_TYPE The primary LockFactory implementation that we will use. LOCK_DIRECTORY The path to the lock directory (only utilized if LOCK_FACTORY_TYPE is set to SimpleFSLockFactory or NativeFSLockFactory ). SLEEP_TIME_MS Milliseconds to pause between each lock obtain/release. TRIES Number of locking tries. Options ?|-h|--help Prints out a short help for the command. Example Run the client (stress test), connecting to the server on IP address 127.0.0.4 and port 54464 using the ID 3, the NativeFSLockFactory , specifying the lock directory as F:\\temp , sleep for 50 milliseconds, and try to obtain a lock up to 10 times: lucene lock stress-test 3 127.0.0.4 54464 NativeFSLockFactory F:\\temp 50 10"
  },
  "cli/lock/verify-server.html": {
    "href": "cli/lock/verify-server.html",
    "title": "verify-server | Apache Lucene.NET 4.8.0-beta00012 Documentation",
    "keywords": "verify-server Name lock-verify-server - Server that must be running when you use VerifyingLockFactory (or stress-test ). Synopsis lucene lock verify-server <IP_HOSTNAME> <MAX_CLIENTS> [?|-h|--help] Description This server simply verifies that at most one process holds the lock at a time. Arguments IP_HOSTNAME Hostname or IP address that verify-server will listen on. MAX_CLIENTS The maximum number of threads that are observing the lock from within the verify-server process. When using stress-test , each thread will be used by a single connected client and the server won't start running until this number of clients is reached. Options ?|-h|--help Prints out a short help for the command. Example Run the server on IP 127.0.0.4 with a 10 connected clients: lucene lock verify-server 127.0.0.4 10"
  },
  "index.html": {
    "href": "index.html",
    "title": "Lucene.Net Docs - The documentation website for Lucene.Net | Apache Lucene.NET 4.8.0-beta00012 Documentation",
    "keywords": "Apache Lucene.Net 4.8.0-beta00012 Documentation Lucene is a .NET full-text search engine . Lucene.NET is not a complete application, but rather a code library and API that can easily be used to add search capabilities to applications. This is the official API documentation for Apache Lucene.NET 4.8.0-beta00012. Getting Started The following section is intended as a \"getting started\" guide. It has three audiences: first-time users looking to install Apache Lucene in their application; developers looking to modify or base the applications they develop on Lucene; and developers looking to become involved in and contribute to the development of Lucene. The goal is to help you \"get started\". It does not go into great depth on some of the conceptual or inner details of Lucene: Lucene demo, its usage, and sources : Tutorial and walk-through of the command-line Lucene demo. Introduction to Lucene's APIs : High-level summary of the different Lucene packages. Analysis overview : Introduction to Lucene's analysis API. See also the TokenStream consumer workflow . Reference Documents Changes : List of changes in this release. System Requirements: Minimum and supported .NET versions. TODO: Add link Migration Guide: What changed in Lucene 4; how to migrate code from Lucene 3.x. TODO: Add link File Formats : Guide to the supported index format used by Lucene. This can be customized by using an alternate codec . Search and Scoring in Lucene : Introduction to how Lucene scores documents. Classic Scoring Formula : Formula of Lucene's classic Vector Space implementation. (look here for other models) Classic QueryParser Syntax : Overview of the Classic QueryParser's syntax and features. Libraries Lucene.Net - Core library Lucene.Net.Analysis.Common - Analyzers for indexing content in different languages and domains Lucene.Net.Analysis.Kuromoji - Japanese Morphological Analyzer Lucene.Net.Analysis.Morfologik - Analyzer for dictionary stemming, built-in Polish dictionary Lucene.Net.Analysis.OpenNlp - OpenNLP Library Integration Lucene.Net.Analysis.Phonetic - Analyzer for indexing phonetic signatures (for sounds-alike search) Lucene.Net.Analysis.SmartCn - Analyzer for indexing Chinese Lucene.Net.Analysis.Stempel - Analyzer for indexing Polish Lucene.Net.Benchmark - System for benchmarking Lucene Lucene.Net.Classification - Classification module for Lucene Lucene.Net.Codecs - Lucene codecs and postings formats Lucene.Net.Expressions - Dynamically computed values to sort/facet/search on based on a pluggable grammar Lucene.Net.Facet - Faceted indexing and search capabilities Lucene.Net.Grouping - Collectors for grouping search results Lucene.Net.Search.Highlight - Highlights search keywords in results Lucene.Net.Analysis.Icu - Specialized ICU (International Components for Unicode) Analyzers and Highlighters Lucene.Net.Join - Index-time and Query-time joins for normalized content Lucene.Net.Memory - Single-document in-memory index implementation Lucene.Net.Misc - Index tools and other miscellaneous code Lucene.Net.Queries - Filters and Queries that add to core Lucene Lucene.Net.QueryParser - Text to Query parsers and parsing framework Lucene.Net.Replicator Files replication utility Lucene.Net.Sandbox - Various third party contributions and new ideas Lucene.Net.Spatial - Geospatial search Lucene.Net.Suggest - Auto-suggest and Spell-checking support Lucene.Net.TestFramework - Framework for testing Lucene-based applications Tools Lucene CLI : Dotnet tool to work with Lucene indexes from the command line Demo : Simple example code"
  }
}