Examples of Similarity


Examples of org.apache.lucene.search.Similarity

  private IndexSearcherWithPayload buildSearcher(SearchFactoryImplementor searchFactoryImplementor, Boolean forceScoring) {
    Map<Class<?>, EntityIndexBinding> builders = searchFactoryImplementor.getIndexBindings();
    List<IndexManager> targetedIndexes = new ArrayList<IndexManager>();
    Set<String> idFieldNames = new HashSet<String>();

    Similarity searcherSimilarity = null;
    //TODO check if caching this work for the last n list of indexedTargetedEntities makes a perf boost
    if ( indexedTargetedEntities.size() == 0 ) {
      // empty indexedTargetedEntities array means search over all indexed entities,
      // but we have to make sure there is at least one
      if ( builders.isEmpty() ) {
View Full Code Here

Examples of org.apache.lucene.search.Similarity

    //TODO cleanup: this logic to select the Similarity is too complex, should likely be done in a previous phase
    final Map<Class<?>, EntityIndexBinding> documentBuildersIndexedEntities = factoryState.getIndexBindings();
    for ( Entry<Class<?>, EntityIndexBinding> entry : documentBuildersIndexedEntities.entrySet() ) {
      Class<?> clazz = entry.getKey();
      EntityIndexBinding entityIndexBinding = entry.getValue();
      Similarity entitySimilarity = entityIndexBinding.getSimilarity();
      if ( entitySimilarity == null ) {
        //might have been read from annotations, fill the missing information in the EntityIndexBinder:
        entitySimilarity = entityIndexBinding.getDocumentBuilder().getSimilarity();
        if ( entitySimilarity != null ) {
          MutableEntityIndexBinding<?> newMapping = buildTypeSafeMutableEntityBinder(
              entityIndexBinding,
              entitySimilarity
          );
          entityIndexBinding = newMapping;
          documentBuildersIndexedEntities.put( clazz, entityIndexBinding );
        }
      }
      IndexManager[] indexManagers = entityIndexBinding.getIndexManagers();
      for ( IndexManager indexManager : indexManagers ) {
        Similarity indexSimilarity = indexManager.getSimilarity();
        if ( entitySimilarity != null && indexSimilarity == null ) {
          indexManager.setSimilarity( entitySimilarity );
        }
        else if ( entitySimilarity != null && ! entitySimilarity.getClass().equals( indexSimilarity.getClass() ) ) {
          throw new SearchException(
              "Multiple entities are sharing the same index but are declaring an " +
                  "inconsistent Similarity. When overriding default Similarity make sure that all types sharing a same index " +
                  "declare the same Similarity implementation."
          );
View Full Code Here

Examples of org.apache.lucene.search.Similarity

    );

    //define the Similarity implementation:
    // warning: it can also be set by an annotation at class level
    final String similarityClassName = indexProps[0].getProperty( Environment.SIMILARITY_CLASS_PER_INDEX );
    Similarity similarityInstance = null;
    if ( similarityClassName != null ) {
      similarityInstance = ClassLoaderHelper.instanceFromName(
          Similarity.class,
          similarityClassName,
          DirectoryProviderFactory.class,
View Full Code Here

Examples of org.apache.lucene.search.Similarity

   * Specifies a custom similarity on an index
   * @param newSimilarity
   * @param manager
   */
  private void setSimilarity(Similarity newSimilarity, IndexManager manager) {
    Similarity similarity = manager.getSimilarity();
    if ( similarity != null && ! similarity.getClass().equals( newSimilarity.getClass() ) ) {
      throw new SearchException(
          "Multiple entities are sharing the same index but are declaring an " +
              "inconsistent Similarity. When overriding default Similarity make sure that all types sharing a same index " +
              "declare the same Similarity implementation."
      );
View Full Code Here

Examples of org.apache.lucene.search.Similarity

   *
   * @return returns the default similarity class.
   */
  private Similarity initSimilarity(SearchConfiguration cfg) {
    String similarityClassName = cfg.getProperty( Environment.SIMILARITY_CLASS );
    Similarity defaultSimilarity;
    if ( StringHelper.isEmpty( similarityClassName ) ) {
      defaultSimilarity = Similarity.getDefault();
    }
    else {
      defaultSimilarity = ClassLoaderHelper.instanceFromName(
          Similarity.class, similarityClassName, ConfigContext.class, "default similarity"
      );
    }
    log.debugf( "Using default similarity implementation: %s", defaultSimilarity.getClass().getName() );
    return defaultSimilarity;
  }
View Full Code Here

Examples of org.apache.lucene.search.Similarity

    this.indexName = indexManager.getIndexName();
    LuceneIndexingParameters luceneParameters = indexManager.getIndexingParameters();
    this.indexParameters = luceneParameters.getIndexParameters();
    this.directoryProvider = indexManager.getDirectoryProvider();
    luceneParameters.applyToWriter( writerConfig );
    Similarity similarity = indexManager.getSimilarity();
    if ( similarity != null ) {
      writerConfig.setSimilarity( similarity );
    }
    writerConfig.setOpenMode( OpenMode.APPEND ); //More efficient to open
    //TODO remove this awful need to set a reference back again to the indexManager:
View Full Code Here

Examples of org.apache.lucene.search.Similarity

    //TODO cleanup: this logic to select the Similarity is too complex, should likely be done in a previous phase
    final Map<Class<?>, EntityIndexBinder> documentBuildersIndexedEntities = factoryState.getIndexBindingForEntity();
    for ( Entry<Class<?>, EntityIndexBinder> entry : documentBuildersIndexedEntities.entrySet() ) {
      Class<?> clazz = entry.getKey();
      EntityIndexBinder entityMapping = entry.getValue();
      Similarity entitySimilarity = entityMapping.getSimilarity();
      if ( entitySimilarity == null ) {
        //might have been read from annotations, fill the missing information in the EntityIndexBinder:
        entitySimilarity = entityMapping.getDocumentBuilder().getSimilarity();
        if ( entitySimilarity != null ) {
          MutableEntityIndexBinding newMapping = buildTypeSafeMutableEntityBinder(
              clazz,
              entityMapping,
              entitySimilarity
          );
          entityMapping = newMapping;
          documentBuildersIndexedEntities.put( clazz, entityMapping );
        }
      }
      IndexManager[] indexManagers = entityMapping.getIndexManagers();
      for ( IndexManager indexManager : indexManagers ) {
        Similarity indexSimilarity = indexManager.getSimilarity();
        if ( entitySimilarity != null && indexSimilarity == null ) {
          indexManager.setSimilarity( entitySimilarity );
        }
        else if ( entitySimilarity != null && ! entitySimilarity.getClass().equals( indexSimilarity.getClass() ) ) {
          throw new SearchException(
              "Multiple entities are sharing the same index but are declaring an " +
                  "inconsistent Similarity. When overriding default Similarity make sure that all types sharing a same index " +
                  "declare the same Similarity implementation."
          );
View Full Code Here

Examples of org.apache.lucene.search.similarities.Similarity

  }
 
  @Override
  public synchronized Similarity get(String field) {
    assert field != null;
    Similarity sim = previousMappings.get(field);
    if (sim == null) {
      sim = knownSims.get(Math.abs(perFieldSeed ^ field.hashCode()) % knownSims.size());
      previousMappings.put(field, sim);
    }
    return sim;
View Full Code Here

Examples of org.apache.lucene.search.similarities.Similarity

  public void testFloatNorms() throws IOException {

    Directory dir = newDirectory();
    IndexWriterConfig config = newIndexWriterConfig(TEST_VERSION_CURRENT,
        new MockAnalyzer(random()));
    Similarity provider = new MySimProvider();
    config.setSimilarity(provider);
    RandomIndexWriter writer = new RandomIndexWriter(random(), dir, config);
    final LineFileDocs docs = new LineFileDocs(random());
    int num = atLeast(100);
    for (int i = 0; i < num; i++) {
View Full Code Here

Examples of org.apache.lucene.search.similarities.Similarity

  }
 
  private void _showDocFields(int docid, Document doc) {
    Object table = find("docTable");
    Object srchOpts = find("srchOptTabs");
    Similarity sim = createSimilarity(srchOpts);
    if (sim == null || !(sim instanceof TFIDFSimilarity)) {
      sim = defaultSimilarity;
    }
    setString(find("docNum"), "text", String.valueOf(docid));
    removeAll(table);
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.