Git Product home page Git Product logo

farcrysolrpro's People

Contributors

boomfish avatar jeffcoughlin avatar justincarter avatar philliprasmussen avatar seancoyne avatar smebberson avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

farcrysolrpro's Issues

Show counts for searches w/o results

For each search string that returned no results, display a count of the number of times that search string had been searched. This will allow staff to get a better handle on the number of times that was searched.

axaj URLs and rewrite rules

can URLs for ajax calls include index.cfm
eg
url: "#application.fapi.getwebroot()#/index.cfm?contentType=
was url: "#application.fapi.getwebroot()#/?contentType=

My rewrite rule ignores URLs with .cfm

Saving a Solr content type causes CF error when result summary was missing

This was tested using FarCry Express (with p610, latest plugin, and Railo).

When you create a new solr farcry type and you leave the result summary field blank, it causes a CF error:

key [BOOSTVALUE] doesn't exist in struct

StackTrace:

key [BOOSTVALUE] doesn't exist in struct (keys:lDocumentSizeFields,resultTitleField,defaultDocBoost,lIndexedRules,lSummaryFields,lCorePropertyBoost,contentType,bEnableSearch,title,resultImageField,OWNEDBY,resultSummaryField,DATETIMECREATED,LABEL,builtToDate,CREATEDBY,LASTUPDATEDBY,bIndexRuleData,lockedBy,aIndexedProperties,BDEFAULTOBJECT,bIndexOnSave,typename,locked,ObjectID,DATETIMELASTUPDATED) at railo.runtime.type.util.StructSupport.invalidKey(StructSupport.java:30):30 at railo.runtime.type.StructImpl.get(StructImpl.java:78):78 at railo.runtime.util.VariableUtilImpl.get(VariableUtilImpl.java:244):244 at railo.runtime.PageContextImpl.get(PageContextImpl.java:1295):1295 at farcry.plugins.farcrysolrpro.packages.types.solrprodocumentboost_cfc$cf.udfCall(/farcry-express-install/webroot/farcry/plugins/farcrysolrpro/packages/types/solrProDocumentBoost.cfc:78):78 at railo.runtime.type.UDFImpl.implementation(UDFImpl.java:214):214 at railo.runtime.type.UDFImpl._call(UDFImpl.java:418):418 at railo.runtime.type.UDFImpl.callWithNamedValues(UDFImpl.java:376):376 at railo.runtime.ComponentImpl._call(ComponentImpl.java:610):610 at railo.runtime.ComponentImpl._call(ComponentImpl.java:496):496 at railo.runtime.ComponentImpl.callWithNamedValues(ComponentImpl.java:1809):1809 at railo.runtime.tag.Invoke.doComponent(Invoke.java:210):210 at railo.runtime.tag.Invoke.doEndTag(Invoke.java:183):183 at farcry.core.packages.formtools.list_cfc$cf.udfCall(/farcry-express-install/webroot/farcry/core/packages/formtools/list.cfc:139):139 at railo.runtime.type.UDFImpl.implementation(UDFImpl.java:214):214 at railo.runtime.type.UDFImpl._call(UDFImpl.java:418):418 at railo.runtime.type.UDFImpl.callWithNamedValues(UDFImpl.java:376):376 at railo.runtime.util.VariableUtilImpl.callFunctionWithNamedValues(VariableUtilImpl.java:774):774 at railo.runtime.PageContextImpl.getFunctionWithNamedValues(PageContextImpl.java:1459):1459 at farcry.core.packages.formtools.list_cfc$cf.udfCall(/farcry-express-install/webroot/farcry/core/packages/formtools/list.cfc:175):175 at railo.runtime.type.UDFImpl.implementation(UDFImpl.java:214):214 at railo.runtime.type.UDFImpl._call(UDFImpl.java:418):418 at railo.runtime.type.UDFImpl.callWithNamedValues(UDFImpl.java:376):376 at railo.runtime.ComponentImpl._call(ComponentImpl.java:610):610 at railo.runtime.ComponentImpl._call(ComponentImpl.java:496):496 at railo.runtime.ComponentImpl.callWithNamedValues(ComponentImpl.java:1809):1809 at railo.runtime.tag.Invoke.doComponent(Invoke.java:210):210 at railo.runtime.tag.Invoke.doEndTag(Invoke.java:183):183 at farcry.core.tags.formtools.object_cfm$cf.call(/farcry-express-install/webroot/farcry/core/tags/formtools/object.cfm:475):475 at railo.runtime.PageContextImpl.doInclude(PageContextImpl.java:762):762 at railo.runtime.tag.CFTag.doInclude(CFTag.java:325):325 at railo.runtime.tag.CFTag.cfmlStartTag(CFTag.java:247):247 at railo.runtime.tag.CFTag.doStartTag(CFTag.java:167):167 at farcry.plugins.farcrysolrpro.webskin.solrprocontenttype.edit_cfm$cf._call000262(/farcry-express-install/webroot/farcry/plugins/farcrysolrpro/webskin/solrProContentType/edit.cfm:284):284 at farcry.plugins.farcrysolrpro.webskin.solrprocontenttype.edit_cfm$cf.call(/farcry-express-install/webroot/farcry/plugins/farcrysolrpro/webskin/solrProContentType/edit.cfm:275):275 at railo.runtime.PageContextImpl.doInclude(PageContextImpl.java:762):762 at railo.runtime.PageContextImpl.doInclude(PageContextImpl.java:715):715 at farcry.core.packages.fourq.fourq_cfc$cf.udfCall1(/farcry-express-install/webroot/farcry/core/packages/fourq/fourq.cfc:442):442 at farcry.core.packages.fourq.fourq_cfc$cf.udfCall(/farcry-express-install/webroot/farcry/core/packages/fourq/fourq.cfc):-1 at railo.runtime.type.UDFImpl.implementation(UDFImpl.java:214):214 at railo.runtime.type.UDFImpl._call(UDFImpl.java:418):418 at railo.runtime.type.UDFImpl.callWithNamedValues(UDFImpl.java:376):376 at railo.runtime.util.VariableUtilImpl.callFunctionWithNamedValues(VariableUtilImpl.java:774):774 at railo.runtime.PageContextImpl.getFunctionWithNamedValues(PageContextImpl.java:1459):1459 at farcry.core.packages.fourq.fourq_cfc$cf.udfCall1(/farcry-express-install/webroot/farcry/core/packages/fourq/fourq.cfc:332):332 at farcry.core.packages.fourq.fourq_cfc$cf.udfCall(/farcry-express-install/webroot/farcry/core/packages/fourq/fourq.cfc):-1 at railo.runtime.type.UDFImpl.implementation(UDFImpl.java:214):214 at railo.runtime.type.UDFImpl._call(UDFImpl.java:418):418 at railo.runtime.type.UDFImpl.callWithNamedValues(UDFImpl.java:376):376 at railo.runtime.ComponentImpl._call(ComponentImpl.java:610):610 at railo.runtime.ComponentImpl._call(ComponentImpl.java:496):496 at railo.runtime.ComponentImpl.callWithNamedValues(ComponentImpl.java:1813):1813 at railo.runtime.util.VariableUtilImpl.callFunctionWithNamedValues(VariableUtilImpl.java:769):769 at railo.runtime.PageContextImpl.getFunctionWithNamedValues(PageContextImpl.java:1459):1459 at farcry.core.webtop.conjuror.invocation_cfm$cf.call(/farcry-express-install/webroot/farcry/core/webtop/conjuror/invocation.cfm:152):152 at railo.runtime.PageContextImpl.doInclude(PageContextImpl.java:762):762 at railo.runtime.listener.ModernAppListener._onRequest(ModernAppListener.java:179):179 at railo.runtime.listener.MixedAppListener.onRequest(MixedAppListener.java:23):23 at railo.runtime.PageContextImpl.execute(PageContextImpl.java:1991):1991 at railo.runtime.PageContextImpl.execute(PageContextImpl.java:1958):1958 at railo.runtime.engine.CFMLEngineImpl.serviceCFML(CFMLEngineImpl.java:297):297 at railo.loader.servlet.CFMLServlet.service(CFMLServlet.java:32):32 at javax.servlet.http.HttpServlet.service(HttpServlet.java:820):820 at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:534):534 at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:475):475 at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119):119 at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:516):516 at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226):226 at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:929):929 at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:403):403 at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:184):184 at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:864):864 at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117):117 at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:247):247 at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:151):151 at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:114):114 at org.eclipse.jetty.server.Server.handle(Server.java:352):352 at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:596):596 at org.eclipse.jetty.server.HttpConnection$RequestHandler.content(HttpConnection.java:1068):1068 at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:805):805 at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:218):218 at org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:426):426 at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:508):508 at org.eclipse.jetty.io.nio.SelectChannelEndPoint.access$000(SelectChannelEndPoint.java:34):34 at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:40):40 at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:451):451 at java.lang.Thread.run(Thread.java:680):680

New/Updated Rules arent indexed

When you add a new rule to an existing, indexed page, the rule content is not indexed until the page is updated. This is because the "build to" date is set and adding a rule does not update the parent page's timestamp. Updating rules has the same effect. We need to look up the containing page in the rule's afterSave phase and determine if the page needs to be indexed and, if so, index it.

We will also need to address when a rule is removed from a container.

Error when configSolrServer.cfc can't see SOLR

Hi,

When configuring the settings in FarCry, the plugin is defaulting the host to localhost. In my case that doesn't work (but didn't realise this until later) but if left on localhost when saving the form I get an error:

The element type "BR" must be terminated by the matching end-tag"

Which is generated from line 106 of configSolrServer.cfc. This is because it's trying to read the 404 error as an XML file.

Maybe worth checking the file is an XML file before trying to process?

Cheers
Mark

error after editing news content

Message: key [TYPENAME] doesn't exist in struct (keys:teaserImage)

C:\Inetpub\websites\psl.com.au\webroot\farcry\plugins\farcrysolrpro\packages\formtools\UUID.cfc (line: 9)
C:\Inetpub\websites\psl.com.au\webroot\farcry\core\packages\formtools\UUID.cfc (line: 22)
C:\Inetpub\websites\psl.com.au\webroot\farcry\core\packages\lib\diff.cfc (line: 190)
C:\Inetpub\websites\psl.com.au\webroot\farcry\core\packages\lib\diff.cfc (line: 248)
C:\Inetpub\websites\psl.com.au\webroot\farcry\core\packages\lib\diff.cfc (line: 235)
C:\Inetpub\websites\psl.com.au\webroot\farcry\core\webskin\types\webtopOverviewSummary.cfm (line: 68)
C:\Inetpub\websites\psl.com.au\webroot\farcry\core\packages\fourq\fourq.cfc (line: 442)
C:\Inetpub\websites\psl.com.au\webroot\farcry\core\packages\fourq\fourq.cfc (line: 332)
C:\Inetpub\websites\psl.com.au\webroot\farcry\core\tags\webskin\view.cfm (line: 139)
C:\Inetpub\websites\psl.com.au\webroot\farcry\core\webskin\types\webtopOverviewTab.cfm (line: 192)
C:\Inetpub\websites\psl.com.au\webroot\farcry\core\packages\fourq\fourq.cfc (line: 442)
C:\Inetpub\websites\psl.com.au\webroot\farcry\core\packages\fourq\fourq.cfc (line: 332)
C:\Inetpub\websites\psl.com.au\webroot\farcry\core\tags\webskin\view.cfm (line: 139)
C:\Inetpub\websites\psl.com.au\webroot\farcry\core\webskin\types\webtopOverview.cfm (line: 79)
C:\Inetpub\websites\psl.com.au\webroot\farcry\core\packages\fourq\fourq.cfc (line: 442)
C:\Inetpub\websites\psl.com.au\webroot\farcry\core\packages\fourq\fourq.cfc (line: 332)
C:\Inetpub\websites\psl.com.au\webroot\farcry\core\tags\webskin\view.cfm (line: 139)
C:\Inetpub\websites\psl.com.au\webroot\farcry\core\webtop\edittabOverview.cfm (line: 67)

ObjectID is not a viable uniqueKey

We are currently using ObjectId as the unique document ID. This is fine in 99% of FarCry implementations. The site will never have 2 items with the same objectid. However, if you have a setup that uses multiple "subdirectory" installs, and you want to have a single Solr index shared among them, it is possible (and likely if you created the sites from the same skeleton) that pages could have duplicate ObjectIds.

We should switch the Solr uniqueKey value to a new field in the schema (fcsp_id) which should be a concatenation of the ObjectId and the applciation name. This combination will be reliably unique as an objectid cannot be repeated within the same FarCry application.

Server error occurs when searching using wildcards * or *:*

When using the SOLRPro webskins on a FarCry 6.2 project and you enter a wildcard for the search (* or :) you get a server 500 error. If I have FarCry email errors to me, I get the following:

ERROR OVERVIEW
Machine: WIFWC9
Instance: coldfusion
Message: Element SPELLCHECK is undefined in STRESULT.
Browser: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
DateTime: {ts '2012-10-23 17:31:02'}

HTTPReferer:
QueryString: q=*&operator=any&lContentTypes=dmHTML&orderby=rank&objectid=185C0160-1CD9-11E2-A5330050569007A3
Bot: not a bot

ERROR DETAILS
Exception Type: Expression
Tag Context: * Q:\inetpub\Develop\FarCry_6\plugins\farcrysolrpro\packages\forms\solrProSearch.cfc (line: 136)
* Q:\inetpub\Develop\FarCry_6\plugins\farcrysolrpro\webskin\solrProSearch\displaySearch.cfm (line: 67)
- Q:\inetpub\Develop\FarCry_6\core\packages\fourq\fourq.cfc (line: 440)
- Q:\inetpub\Develop\FarCry_6\core\packages\fourq\fourq.cfc (line: 332)
- Q:\inetpub\Develop\FarCry_6\core\tags\webskin\view.cfm (line: 138)
- Q:\inetpub\Develop\FarCry_6\core\tags\webskin\view.cfm (line: 74)
- Q:\inetpub\Develop\FarCry_6\core\tags\webskin\view.cfm (line: 9)
- Q:\inetpub\Develop\FarCry_6\core\tags\webskin\view.cfm (line: 1)
* Q:\inetpub\Develop\FarCry_6\plugins\farcrysolrpro\webskin\solrProSearch\displayTypeBody.cfm (line: 21)
- Q:\inetpub\Develop\FarCry_6\core\packages\fourq\fourq.cfc (line: 440)
- Q:\inetpub\Develop\FarCry_6\core\packages\fourq\fourq.cfc (line: 332)
- Q:\inetpub\Develop\FarCry_6\core\tags\webskin\view.cfm (line: 138)
- Q:\inetpub\Develop\FarCry_6\core\tags\webskin\view.cfm (line: 74)
- Q:\inetpub\Develop\FarCry_6\core\tags\webskin\view.cfm (line: 9)
- Q:\inetpub\Develop\FarCry_6\core\tags\webskin\view.cfm (line: 1)
- Q:\inetpub\Develop\FarCry_6\core\webskin\dmInclude\displayBody.cfm (line: 29)
- Q:\inetpub\Develop\FarCry_6\core\packages\fourq\fourq.cfc (line: 440)
- Q:\inetpub\Develop\FarCry_6\core\packages\fourq\fourq.cfc (line: 332)
- Q:\inetpub\Develop\FarCry_6\core\tags\webskin\view.cfm (line: 138)
- Q:\inetpub\Develop\FarCry_6\core\tags\webskin\view.cfm (line: 74)
- Q:\inetpub\Develop\FarCry_6\core\tags\webskin\view.cfm (line: 9)
- Q:\inetpub\Develop\FarCry_6\core\tags\webskin\view.cfm (line: 1)
* Q:\inetpub\Develop\FarCry_6\projects\emptysite\webskin\types\displayPageStandard.cfm (line: 49)
- Q:\inetpub\Develop\FarCry_6\core\packages\fourq\fourq.cfc (line: 440)
- Q:\inetpub\Develop\FarCry_6\core\packages\fourq\fourq.cfc (line: 332)
- Q:\inetpub\Develop\FarCry_6\core\tags\webskin\view.cfm (line: 138)
- Q:\inetpub\Develop\FarCry_6\core\tags\webskin\view.cfm (line: 74)
- Q:\inetpub\Develop\FarCry_6\core\tags\webskin\view.cfm (line: 9)
- Q:\inetpub\Develop\FarCry_6\core\tags\webskin\view.cfm (line: 1)
- Q:\inetpub\Develop\FarCry_6\core\tags\navajo\display.cfm (line: 226)
- Q:\inetpub\Develop\FarCry_6\core\tags\navajo\display.cfm (line: 102)
- Q:\inetpub\Develop\FarCry_6\core\tags\navajo\display.cfm (line: 1)
- Q:\inetpub\Develop\FarCry_6\core\webskin\dmNavigation\displayPageStandard.cfm (line: 48)
- Q:\inetpub\Develop\FarCry_6\core\packages\fourq\fourq.cfc (line: 440)
- Q:\inetpub\Develop\FarCry_6\core\packages\fourq\fourq.cfc (line: 332)
- Q:\inetpub\Develop\FarCry_6\core\tags\webskin\view.cfm (line: 138)
- Q:\inetpub\Develop\FarCry_6\core\tags\webskin\view.cfm (line: 74)
- Q:\inetpub\Develop\FarCry_6\core\tags\webskin\view.cfm (line: 9)
- Q:\inetpub\Develop\FarCry_6\core\tags\webskin\view.cfm (line: 1)
- Q:\inetpub\Develop\FarCry_6\core\tags\navajo\display.cfm (line: 232)
- Q:\inetpub\Develop\FarCry_6\core\tags\navajo\display.cfm (line: 102)
- Q:\inetpub\Develop\FarCry_6\core\tags\navajo\display.cfm (line: 1)
* Q:\inetpub\Develop\FarCry_6\projects\emptysite\www\index.cfm (line: 22)

I was getting this same error in a project that has custom search pages but in the above I've created a brand new empty site and used the search pages from the plugin (v1.2.1)

Need to document contentToIndex()

We need to document the contentToIndex() function. Perhaps something like a heading of "How do I determine what content gets indexed?" and explain how, by default all items (except draft if it uses the FarCry publishing model) are indexed, but you can write a contentToIndex function that returns a query that contains the objects to index.

Multiple site elevation.xml issue

If you use the plugin in a multiple site environment, if you use elevate on one site, it will add it to the XML file.

If you create the same elevation on another site its possible to create duplicates in the XML file.

To fix, in addition to checking the database for duplicates, the XML file itself should also be checked.

Feature: Ability to exclude specific Solr fields from the qf parameter

The solrProSearch form sets the qf parameter to all available Solr fields for the searched content types that are compatible with the search operator. This causes Solr to search user queries against all those fields, however this may result in unintended matches:

  • A content type may have a custom property to support a custom filter: the Solr field for this property should be used to match the custom filter, but not the user query.
  • Results of test searches on one real site included matches on Solr fields for default properties included by the plugin; these matches were confusing and impossible to explain to the site owner.

There should be some way (such as a checkbox in the Solr Pro Content Type admin form) to mark custom and default properties on a type so that it is not automatically included in the qf parameter for a search.

Suggested behavior:

  • The default setting should be to include the Solr field in qf (to match the current behavior).
  • If the same Solr field appears in multiple content types, it must be makred as excluded from qf in all searched content types to be excluded in the search; otherwise it is included in qf in the serch.

Looking at the code, I believe the setting could be implemented within solrProIndexedProperty.lFieldTypes by changing it from a list of name:type doubles to a list of name:type:qf triples.

unknown field 'fcsp_documentsize'

I am getting this error in my SOLR logs - anyone be able to point me in the right direction?

Railo 3.3.2.003 final on Windows

18/04/2012 9:39:00 AM org.apache.solr.common.SolrException log
SEVERE: org.apache.solr.common.SolrException: ERROR: [doc=BB26D7E6-09D3-11E1-B3FF005056830000] unknown field 'fcsp_documentsize'
at org.apache.solr.update.DocumentBuilder.toDocument(DocumentBuilder.java:331)
at org.apache.solr.update.processor.RunUpdateProcessor.processAdd(RunUpdateProcessorFactory.java:60)
at org.apache.solr.update.processor.LogUpdateProcessor.processAdd(LogUpdateProcessorFactory.java:115)
at org.apache.solr.handler.XMLLoader.processUpdate(XMLLoader.java:158)
at org.apache.solr.handler.XMLLoader.load(XMLLoader.java:79)
at org.apache.solr.handler.ContentStreamHandlerBase.handleRequestBody(ContentStreamHandlerBase.java:58)
at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:129)
at org.apache.solr.core.SolrCore.execute(SolrCore.java:1372)
at org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:356)
at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:252)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:399)
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450)
at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:326)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:945)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:843)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
at org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228)
at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)

No cache object found

Running Railo 3.2.x, there's no cache defined by default. A new ehCache needs to be created of type "object" in order to save and use portions of the plugin. There's an cfadmin piece for this, but you'd need to have a user supply a password to change it programitcally.

Files in alternate locations are not indexed

we are currently creating the path to files and images like so:

if (ftType eq "image") {
  var filePath = application.fapi.getImageWebroot() & stRecord[field];
} else {
  var filePath = application.fapi.getFileWebroot() & stRecord[field];   
}

This assumes that the property holding the file stores it in the FarCry default location (/files for files, /images for images, etc). But, in the cfproperty tag for that field, the ftDestination could be set to an alternate location, ftSecure could be used which stores files in the securefiles dir under the project. These files would not be indexed because our code would not find them.

Parsed file contents cannot be used to build the "highlight" field

Since we don't parse files until right before they are sent to Solr, the parsed text cannot be used to build the "highlight" field which Solr uses to generate search result summaries. If we move this logic into the previous step where all the fields are combined into a single document, we should be able to get around this limitation.

Allow for custom indexing logic

Allow a custom type to have a method that is run when a record is indexed. This will allow you to have custom logic to influence the data that is sent to solr for a record. This will allow you completely customize how Solr indexes a record.

Clean up

Clean up some unnecssary object creation

If Solr is not running, index on save throws an error

If Solr isn't running, for example in a development environment, when you save a record that is set to "index on save" or "delete on save", the plugin throws an error. Some simple try/catch error handling will fix this.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.